From 69856a15e321b0c977b29fc0474703d2521bdb13 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Tue, 18 Dec 2018 14:54:23 -0800 Subject: [PATCH] Fix tests, colour behaviour, and snackbar button styling. --- kolibri/core/assets/src/core-app/apiSpec.js | 2 +- .../core/assets/src/core-app/constructor.js | 16 +---- .../core/assets/src/core-app/kolibriVue.js | 13 ++++ kolibri/core/assets/src/utils/colour.js | 4 +- kolibri/core/assets/src/utils/colourPicker.js | 6 +- .../src/views/CoreSnackbar/KeenUiSnackbar.vue | 66 ++++++++++--------- .../core/assets/test/content-renderer.spec.js | 8 +++ .../core/assets/test/download-button.spec.js | 2 + kolibri/core/assets/test/progress-bar.spec.js | 5 ++ .../core/assets/test/progress-icon.spec.js | 5 ++ kolibri/core/assets/test/utils/colour.spec.js | 20 ++++++ .../core/assets/test/views/KTooltip.spec.js | 2 + .../views/__snapshots__/app-bar.spec.js.snap | 8 +-- .../views/__snapshots__/side-nav.spec.js.snap | 24 +++---- .../views/AssignmentChangeStatusModal.spec.js | 5 ++ .../test/views/AssignmentDeleteModal.spec.js | 3 + .../test/views/AssignmentDetailsModal.spec.js | 2 + .../views/ManageContentPage/ChannelsGrid.vue | 1 + .../test/views/channel-token-modal.spec.js | 3 +- .../assets/test/views/channels-grid.spec.js | 4 +- .../test/views/content-node-row.spec.js | 2 + .../views/selected-resources-size.spec.js | 2 + .../assets/tests/BottomBar.spec.js | 2 + .../assets/tests/SearchSideBar.spec.js | 2 + .../assets/tests/SettingsSideBar.spec.js | 2 + .../tests/TableOfContentsSection.spec.js | 2 + .../TableOfContentsSectionSideBar.spec.js | 2 + .../assets/tests/TopBar.spec.js | 2 + .../views/PersonalDataConsentForm.spec.js | 3 +- packages/kolibri-tools/jest_config/setup.js | 12 ++-- 30 files changed, 158 insertions(+), 72 deletions(-) create mode 100644 kolibri/core/assets/src/core-app/kolibriVue.js create mode 100644 kolibri/core/assets/test/utils/colour.spec.js diff --git a/kolibri/core/assets/src/core-app/apiSpec.js b/kolibri/core/assets/src/core-app/apiSpec.js index c022b09f33..3f40ea186a 100644 --- a/kolibri/core/assets/src/core-app/apiSpec.js +++ b/kolibri/core/assets/src/core-app/apiSpec.js @@ -12,7 +12,6 @@ // N.B. You cannot use keys that require quotation marks in this object. // e.g. 'content-icon' (although this can be used as a value in module). -import vue from 'vue'; import vuex from 'vuex'; import seededshuffle from 'seededshuffle'; import UiAlert from 'keen-ui/src/UiAlert'; @@ -97,6 +96,7 @@ import navComponents from '../utils/navComponents'; import CatchErrors from '../utils/CatchErrors'; import KTooltip from '../views/KTooltip'; import * as colour from '../utils/colour'; +import vue from './kolibriVue'; import * as client from './client'; import urls from './urls'; diff --git a/kolibri/core/assets/src/core-app/constructor.js b/kolibri/core/assets/src/core-app/constructor.js index f74ebe512d..f8bd1d0200 100644 --- a/kolibri/core/assets/src/core-app/constructor.js +++ b/kolibri/core/assets/src/core-app/constructor.js @@ -3,14 +3,10 @@ * @module Facade */ -import Vue from 'vue'; -import VueMeta from 'vue-meta'; -import VueRouter from 'vue-router'; -import Vuex from 'vuex'; +import Vue from 'kolibri.lib.vue'; import { i18nSetup } from '../utils/i18n'; import Mediator from './mediator'; import apiSpec from './apiSpec'; -import VueAphrodite from './vueAphrodite'; /** * Array containing the names of all methods of the Mediator that @@ -48,12 +44,6 @@ export default class CoreApp { Vue.prototype.Kolibri = this; - // Register Vue plugins - Vue.use(Vuex); - Vue.use(VueRouter); - Vue.use(VueMeta); - Vue.use(VueAphrodite); - // Shim window.location.origin for IE. if (!window.location.origin) { window.location.origin = `${window.location.protocol}//${window.location.hostname}${ @@ -66,9 +56,9 @@ export default class CoreApp { mediator.setReady(); }; - if (process.env.NODE !== 'production') { + if (process.env.NODE_ENV !== 'production') { const colourPicker = require('../utils/colourPicker').default; - colourPicker.start(); + window.colourPicker = colourPicker; } i18nSetup().then(intlReady); diff --git a/kolibri/core/assets/src/core-app/kolibriVue.js b/kolibri/core/assets/src/core-app/kolibriVue.js new file mode 100644 index 0000000000..e016572a70 --- /dev/null +++ b/kolibri/core/assets/src/core-app/kolibriVue.js @@ -0,0 +1,13 @@ +import Vue from 'vue'; +import VueMeta from 'vue-meta'; +import VueRouter from 'vue-router'; +import Vuex from 'vuex'; +import VueAphrodite from './vueAphrodite'; + +// Register Vue plugins +Vue.use(Vuex); +Vue.use(VueRouter); +Vue.use(VueMeta); +Vue.use(VueAphrodite); + +export default Vue; diff --git a/kolibri/core/assets/src/utils/colour.js b/kolibri/core/assets/src/utils/colour.js index bafe485fb4..973e14d5f1 100644 --- a/kolibri/core/assets/src/utils/colour.js +++ b/kolibri/core/assets/src/utils/colour.js @@ -23,7 +23,7 @@ function _modifyColour(sourceColour, ratio, colourFn, name) { parsedRatio = Number(ratio); } if (parsedRatio !== null) { - return colourFn(sourceColour, ratio).toString(); + return colourFn(sourceColour, parsedRatio).toString(); } throw TypeError(`Unparseable ratio: ${ratio} passed to ${name} function`); } @@ -39,7 +39,7 @@ export function lighten(sourceColour, ratio) { } function _darken(sourceColour, ratio) { - return sourceColour.brighter(Math.log(1 - ratio) / darkenLogBase); + return sourceColour.darker(Math.log(1 - ratio) / darkenLogBase); } export function darken(sourceColour, ratio) { diff --git a/kolibri/core/assets/src/utils/colourPicker.js b/kolibri/core/assets/src/utils/colourPicker.js index ac98e37107..63cae0201d 100644 --- a/kolibri/core/assets/src/utils/colourPicker.js +++ b/kolibri/core/assets/src/utils/colourPicker.js @@ -3,7 +3,7 @@ import store from 'kolibri.coreVue.vuex.store'; import ColourPicker from '../views/ColourPicker'; export default { - start() { + show() { const pickerDiv = global.document.createElement('div'); global.document.body.appendChild(pickerDiv); this.rootvue = new Vue( @@ -16,4 +16,8 @@ export default { ) ); }, + hide() { + global.document.body.removeChild(this.rootvue.$el); + this.rootvue.$destroy(); + }, }; diff --git a/kolibri/core/assets/src/views/CoreSnackbar/KeenUiSnackbar.vue b/kolibri/core/assets/src/views/CoreSnackbar/KeenUiSnackbar.vue index fe4df1429f..d12d014ae0 100644 --- a/kolibri/core/assets/src/views/CoreSnackbar/KeenUiSnackbar.vue +++ b/kolibri/core/assets/src/views/CoreSnackbar/KeenUiSnackbar.vue @@ -16,17 +16,12 @@
- {{ action }} + >{{ action }}
@@ -36,22 +31,14 @@