From db2bed896a064d4d78383a7f7635896ca58b0a4b Mon Sep 17 00:00:00 2001 From: Benedict Aas Date: Thu, 1 Feb 2018 12:28:56 +0000 Subject: [PATCH] feat: replace template paths with contents We replace the `templateUrl` fields with `template` fields and thus switch from template paths to template contents in preparation for the Webpack PR. Changelog-Entry: Replace template paths with template contents. Change-Type: patch --- lib/gui/app/app.js | 8 ++++++ .../drive-selector/services/drive-selector.js | 2 +- .../app/components/modal/services/modal.js | 6 ++--- .../directives/progress-button.js | 2 +- .../tooltip-modal/services/tooltip-modal.js | 2 +- .../warning-modal/services/warning-modal.js | 2 +- lib/gui/app/pages/finish/finish.js | 2 +- lib/gui/app/pages/main/main.js | 2 +- lib/gui/app/pages/settings/settings.js | 2 +- tests/gui/pages/main.spec.js | 27 +++++++++++++++++++ 10 files changed, 45 insertions(+), 10 deletions(-) diff --git a/lib/gui/app/app.js b/lib/gui/app/app.js index 41b73921..69dc49ac 100644 --- a/lib/gui/app/app.js +++ b/lib/gui/app/app.js @@ -26,6 +26,14 @@ var angular = require('angular') /* eslint-enable no-var */ +// Temporary: will be taken care of Webpack automatically soon +// eslint-disable-next-line node/no-deprecated-api +require.extensions['.html'] = (module, filename) => { + module.exports = require('fs').readFileSync(filename, { + encoding: 'utf8' + }) +} + const electron = require('electron') const Bluebird = require('bluebird') const semver = require('semver') diff --git a/lib/gui/app/components/drive-selector/services/drive-selector.js b/lib/gui/app/components/drive-selector/services/drive-selector.js index 5b7376f0..dcb7c9c7 100644 --- a/lib/gui/app/components/drive-selector/services/drive-selector.js +++ b/lib/gui/app/components/drive-selector/services/drive-selector.js @@ -35,7 +35,7 @@ module.exports = function (ModalService, $q) { this.open = () => { modal = ModalService.open({ name: 'drive-selector', - template: './components/drive-selector/templates/drive-selector-modal.tpl.html', + template: require('../templates/drive-selector-modal.tpl.html'), controller: 'DriveSelectorController as modal', size: 'drive-selector-modal' }) diff --git a/lib/gui/app/components/modal/services/modal.js b/lib/gui/app/components/modal/services/modal.js index da6efb6a..e84dc2ee 100644 --- a/lib/gui/app/components/modal/services/modal.js +++ b/lib/gui/app/components/modal/services/modal.js @@ -26,7 +26,7 @@ module.exports = function ($uibModal, $q) { * @public * * @param {Object} options - options - * @param {String} options.template - template path + * @param {String} options.template - template contents * @param {String} options.controller - controller * @param {String} [options.size='sm'] - modal size * @param {Object} options.resolve - modal resolves @@ -35,7 +35,7 @@ module.exports = function ($uibModal, $q) { * @example * ModalService.open({ * name: 'my modal', - * template: './path/to/modal.tpl.html', + * template: require('./path/to/modal.tpl.html'), * controller: 'DriveSelectorController as modal', * }); */ @@ -50,7 +50,7 @@ module.exports = function ($uibModal, $q) { const modal = $uibModal.open({ animation: true, - templateUrl: options.template, + template: options.template, controller: options.controller, size: options.size, resolve: options.resolve diff --git a/lib/gui/app/components/progress-button/directives/progress-button.js b/lib/gui/app/components/progress-button/directives/progress-button.js index 06ccdbf7..7f11983c 100644 --- a/lib/gui/app/components/progress-button/directives/progress-button.js +++ b/lib/gui/app/components/progress-button/directives/progress-button.js @@ -32,7 +32,7 @@ */ module.exports = () => { return { - templateUrl: './components/progress-button/templates/progress-button.tpl.html', + template: require('../templates/progress-button.tpl.html'), restrict: 'E', replace: true, transclude: true, diff --git a/lib/gui/app/components/tooltip-modal/services/tooltip-modal.js b/lib/gui/app/components/tooltip-modal/services/tooltip-modal.js index 11aaefc8..dcc32b27 100644 --- a/lib/gui/app/components/tooltip-modal/services/tooltip-modal.js +++ b/lib/gui/app/components/tooltip-modal/services/tooltip-modal.js @@ -38,7 +38,7 @@ module.exports = function (ModalService) { this.show = (options) => { return ModalService.open({ name: 'tooltip', - template: './components/tooltip-modal/templates/tooltip-modal.tpl.html', + template: require('../templates/tooltip-modal.tpl.html'), controller: 'TooltipModalController as modal', size: 'tooltip-modal', resolve: { diff --git a/lib/gui/app/components/warning-modal/services/warning-modal.js b/lib/gui/app/components/warning-modal/services/warning-modal.js index 90cf29b8..dac49af9 100644 --- a/lib/gui/app/components/warning-modal/services/warning-modal.js +++ b/lib/gui/app/components/warning-modal/services/warning-modal.js @@ -41,7 +41,7 @@ module.exports = function ($sce, ModalService) { options.description = $sce.trustAsHtml(options.description) return ModalService.open({ name: 'warning', - template: './components/warning-modal/templates/warning-modal.tpl.html', + template: require('../templates/warning-modal.tpl.html'), controller: 'WarningModalController as modal', size: 'warning-modal', resolve: { diff --git a/lib/gui/app/pages/finish/finish.js b/lib/gui/app/pages/finish/finish.js index a9ddff73..abb160af 100644 --- a/lib/gui/app/pages/finish/finish.js +++ b/lib/gui/app/pages/finish/finish.js @@ -39,7 +39,7 @@ FinishPage.config(($stateProvider) => { .state('success', { url: '/success', controller: 'FinishController as finish', - templateUrl: './pages/finish/templates/success.tpl.html' + template: require('./templates/success.tpl.html') }) }) diff --git a/lib/gui/app/pages/main/main.js b/lib/gui/app/pages/main/main.js index de88e749..9aeba0f8 100644 --- a/lib/gui/app/pages/main/main.js +++ b/lib/gui/app/pages/main/main.js @@ -55,7 +55,7 @@ MainPage.config(($stateProvider) => { .state('main', { url: '/main', controller: 'MainController as main', - templateUrl: './pages/main/templates/main.tpl.html' + template: require('./templates/main.tpl.html') }) }) diff --git a/lib/gui/app/pages/settings/settings.js b/lib/gui/app/pages/settings/settings.js index 32eb907b..872f0e46 100644 --- a/lib/gui/app/pages/settings/settings.js +++ b/lib/gui/app/pages/settings/settings.js @@ -34,7 +34,7 @@ SettingsPage.config(($stateProvider) => { .state('settings', { url: '/settings', controller: 'SettingsController as settings', - templateUrl: './pages/settings/templates/settings.tpl.html' + template: require('./templates/settings.tpl.html') }) }) diff --git a/tests/gui/pages/main.spec.js b/tests/gui/pages/main.spec.js index b9676292..6b00e9f5 100644 --- a/tests/gui/pages/main.spec.js +++ b/tests/gui/pages/main.spec.js @@ -18,6 +18,7 @@ const m = require('mochainon') const _ = require('lodash') +const fs = require('fs') const path = require('path') const supportedFormats = require('../../../lib/shared/supported-formats') const angular = require('angular') @@ -26,6 +27,14 @@ const availableDrives = require('../../../lib/shared/models/available-drives') const selectionState = require('../../../lib/shared/models/selection-state') require('angular-mocks') +// Mock HTML requires by reading from the file-system +// eslint-disable-next-line node/no-deprecated-api +require.extensions['.html'] = (module, filename) => { + module.exports = fs.readFileSync(filename, { + encoding: 'utf8' + }) +} + describe('Browser: MainPage', function () { beforeEach(angular.mock.module( require('../../../lib/gui/app/pages/main/main') @@ -241,4 +250,22 @@ describe('Browser: MainPage', function () { }) }) }) + + describe('page template', function () { + let $state + + beforeEach(angular.mock.inject(function (_$state_) { + $state = _$state_ + })) + + it('should match the file contents', function () { + const { + template + } = $state.get('main') + const contents = fs.readFileSync('lib/gui/app/pages/main/templates/main.tpl.html', { + encoding: 'utf-8' + }) + m.chai.expect(template).to.equal(contents) + }) + }) })