From 244d5ca727793c39b5943bd0fe1ee09b3dd76207 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 1 Apr 2016 10:18:59 -0400 Subject: [PATCH] Convert SelectionStateService into a model --- lib/browser/app.js | 10 ++- .../{modules => models}/selection-state.js | 26 +++--- .../pages/finish/controllers/finish.js | 4 +- lib/browser/pages/finish/finish.js | 4 +- .../selection-state.spec.js | 82 +++++++++---------- 5 files changed, 64 insertions(+), 62 deletions(-) rename lib/browser/{modules => models}/selection-state.js (82%) rename tests/browser/{modules => models}/selection-state.spec.js (61%) diff --git a/lib/browser/app.js b/lib/browser/app.js index 4cf7feee..9c88bc61 100644 --- a/lib/browser/app.js +++ b/lib/browser/app.js @@ -29,7 +29,7 @@ const currentWindow = BrowserWindow.fromId(1); require('angular-ui-bootstrap'); require('angular-ui-router'); -require('./browser/modules/selection-state'); +require('./browser/models/selection-state'); require('./browser/modules/drive-scanner'); require('./browser/modules/image-writer'); require('./browser/modules/path'); @@ -47,7 +47,6 @@ const app = angular.module('Etcher', [ // Etcher modules 'Etcher.path', - 'Etcher.selection-state', 'Etcher.drive-scanner', 'Etcher.image-writer', 'Etcher.notifier', @@ -56,6 +55,9 @@ const app = angular.module('Etcher', [ // Controllers 'Etcher.controllers.navigation', + // Models + 'Etcher.Models.SelectionState', + // Components 'Etcher.Components.ProgressButton', 'Etcher.Components.DriveSelector', @@ -82,13 +84,13 @@ app.controller('AppController', function( $scope, NotifierService, DriveScannerService, - SelectionStateService, + SelectionStateModel, ImageWriterService, AnalyticsService, DriveSelectorService ) { let self = this; - this.selection = SelectionStateService; + this.selection = SelectionStateModel; this.writer = ImageWriterService; this.scanner = DriveScannerService; diff --git a/lib/browser/modules/selection-state.js b/lib/browser/models/selection-state.js similarity index 82% rename from lib/browser/modules/selection-state.js rename to lib/browser/models/selection-state.js index c62290c2..7d7d8a5c 100644 --- a/lib/browser/modules/selection-state.js +++ b/lib/browser/models/selection-state.js @@ -17,14 +17,14 @@ 'use strict'; /** - * @module Etcher.selection-state + * @module Etcher.Models.SelectionState */ const _ = require('lodash'); const angular = require('angular'); -const selectionState = angular.module('Etcher.selection-state', []); +const SelectionStateModel = angular.module('Etcher.Models.SelectionState', []); -selectionState.service('SelectionStateService', function() { +SelectionStateModel.service('SelectionStateModel', function() { let self = this; /** @@ -42,7 +42,7 @@ selectionState.service('SelectionStateService', function() { * @param {Object} drive - drive * * @example - * SelectionStateService.setDrive({ + * SelectionStateModel.setDrive({ * device: '/dev/disk2' * }); */ @@ -58,7 +58,7 @@ selectionState.service('SelectionStateService', function() { * @param {String} image - image * * @example - * SelectionStateService.setImage('foo.img'); + * SelectionStateModel.setImage('foo.img'); */ this.setImage = function(image) { selection.image = image; @@ -72,7 +72,7 @@ selectionState.service('SelectionStateService', function() { * @returns {Object} drive * * @example - * const drive = SelectionStateService.getDrive(); + * const drive = SelectionStateModel.getDrive(); */ this.getDrive = function() { return selection.drive; @@ -86,7 +86,7 @@ selectionState.service('SelectionStateService', function() { * @returns {String} image * * @example - * const image = SelectionStateService.getImage(); + * const image = SelectionStateModel.getImage(); */ this.getImage = function() { return selection.image; @@ -100,7 +100,7 @@ selectionState.service('SelectionStateService', function() { * @returns {Boolean} whether there is a selected drive * * @example - * if (SelectionStateService.hasDrive()) { + * if (SelectionStateModel.hasDrive()) { * console.log('There is a drive!'); * } */ @@ -116,7 +116,7 @@ selectionState.service('SelectionStateService', function() { * @returns {Boolean} whether there is a selected image * * @example - * if (SelectionStateService.hasImage()) { + * if (SelectionStateModel.hasImage()) { * console.log('There is an image!'); * } */ @@ -130,7 +130,7 @@ selectionState.service('SelectionStateService', function() { * @public * * @example - * SelectionStateService.removeDrive(); + * SelectionStateModel.removeDrive(); */ this.removeDrive = _.partial(self.setDrive, undefined); @@ -140,7 +140,7 @@ selectionState.service('SelectionStateService', function() { * @public * * @example - * SelectionStateService.removeImage(); + * SelectionStateModel.removeImage(); */ this.removeImage = _.partial(self.setImage, undefined); @@ -153,10 +153,10 @@ selectionState.service('SelectionStateService', function() { * @param {Boolean} [options.preserveImage] - preserve image * * @example - * SelectionStateService.clear(); + * SelectionStateModel.clear(); * * @example - * SelectionStateService.clear({ preserveImage: true }); + * SelectionStateModel.clear({ preserveImage: true }); */ this.clear = function(options) { if (options && options.preserveImage) { diff --git a/lib/browser/pages/finish/controllers/finish.js b/lib/browser/pages/finish/controllers/finish.js index 1cdff2b9..d9bd0778 100644 --- a/lib/browser/pages/finish/controllers/finish.js +++ b/lib/browser/pages/finish/controllers/finish.js @@ -16,7 +16,7 @@ 'use strict'; -module.exports = function($state, SelectionStateService, ImageWriterService, AnalyticsService, SettingsModel) { +module.exports = function($state, SelectionStateModel, ImageWriterService, AnalyticsService, SettingsModel) { /** * @summary Settings data @@ -37,7 +37,7 @@ module.exports = function($state, SelectionStateService, ImageWriterService, Ana * FinishController.restart({ preserveImage: true }); */ this.restart = function(options) { - SelectionStateService.clear(options); + SelectionStateModel.clear(options); ImageWriterService.resetState(); AnalyticsService.logEvent('Restart', options); $state.go('main'); diff --git a/lib/browser/pages/finish/finish.js b/lib/browser/pages/finish/finish.js index b37fde31..8f4e75c6 100644 --- a/lib/browser/pages/finish/finish.js +++ b/lib/browser/pages/finish/finish.js @@ -28,16 +28,16 @@ const angular = require('angular'); require('angular-ui-router'); -require('../../modules/selection-state'); require('../../modules/image-writer'); require('../../modules/analytics'); +require('../../models/selection-state'); require('../../models/settings'); const FinishPage = angular.module('Etcher.Pages.Finish', [ 'ui.router', - 'Etcher.selection-state', 'Etcher.image-writer', 'Etcher.analytics', + 'Etcher.Models.SelectionState', 'Etcher.Models.Settings' ]); diff --git a/tests/browser/modules/selection-state.spec.js b/tests/browser/models/selection-state.spec.js similarity index 61% rename from tests/browser/modules/selection-state.spec.js rename to tests/browser/models/selection-state.spec.js index 0e0588b5..cfdcc29e 100644 --- a/tests/browser/modules/selection-state.spec.js +++ b/tests/browser/models/selection-state.spec.js @@ -3,43 +3,43 @@ const m = require('mochainon'); const angular = require('angular'); require('angular-mocks'); -require('../../../lib/browser/modules/selection-state'); +require('../../../lib/browser/models/selection-state'); describe('Browser: SelectionState', function() { - beforeEach(angular.mock.module('Etcher.selection-state')); + beforeEach(angular.mock.module('Etcher.Models.SelectionState')); - describe('SelectionStateService', function() { + describe('SelectionStateModel', function() { - let SelectionStateService; + let SelectionStateModel; - beforeEach(angular.mock.inject(function(_SelectionStateService_) { - SelectionStateService = _SelectionStateService_; + beforeEach(angular.mock.inject(function(_SelectionStateModel_) { + SelectionStateModel = _SelectionStateModel_; })); describe('given a clean state', function() { beforeEach(function() { - SelectionStateService.clear(); + SelectionStateModel.clear(); }); it('getDrive() should return undefined', function() { - const drive = SelectionStateService.getDrive(); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.be.undefined; }); it('getImage() should return undefined', function() { - const image = SelectionStateService.getImage(); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.be.undefined; }); it('hasDrive() should return false', function() { - const hasDrive = SelectionStateService.hasDrive(); + const hasDrive = SelectionStateModel.hasDrive(); m.chai.expect(hasDrive).to.be.false; }); it('hasImage() should return false', function() { - const hasImage = SelectionStateService.hasImage(); + const hasImage = SelectionStateModel.hasImage(); m.chai.expect(hasImage).to.be.false; }); @@ -48,13 +48,13 @@ describe('Browser: SelectionState', function() { describe('given a drive', function() { beforeEach(function() { - SelectionStateService.setDrive('/dev/disk2'); + SelectionStateModel.setDrive('/dev/disk2'); }); describe('.getDrive()', function() { it('should return the drive', function() { - const drive = SelectionStateService.getDrive(); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.equal('/dev/disk2'); }); @@ -63,7 +63,7 @@ describe('Browser: SelectionState', function() { describe('.hasDrive()', function() { it('should return true', function() { - const hasDrive = SelectionStateService.hasDrive(); + const hasDrive = SelectionStateModel.hasDrive(); m.chai.expect(hasDrive).to.be.true; }); @@ -72,8 +72,8 @@ describe('Browser: SelectionState', function() { describe('.setDrive()', function() { it('should override the drive', function() { - SelectionStateService.setDrive('/dev/disk5'); - const drive = SelectionStateService.getDrive(); + SelectionStateModel.setDrive('/dev/disk5'); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.equal('/dev/disk5'); }); @@ -82,8 +82,8 @@ describe('Browser: SelectionState', function() { describe('.removeDrive()', function() { it('should clear the drive', function() { - SelectionStateService.removeDrive(); - const drive = SelectionStateService.getDrive(); + SelectionStateModel.removeDrive(); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.be.undefined; }); @@ -96,8 +96,8 @@ describe('Browser: SelectionState', function() { describe('.setDrive()', function() { it('should be able to set a drive', function() { - SelectionStateService.setDrive('/dev/disk5'); - const drive = SelectionStateService.getDrive(); + SelectionStateModel.setDrive('/dev/disk5'); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.equal('/dev/disk5'); }); @@ -108,13 +108,13 @@ describe('Browser: SelectionState', function() { describe('given an image', function() { beforeEach(function() { - SelectionStateService.setImage('foo.img'); + SelectionStateModel.setImage('foo.img'); }); describe('.getImage()', function() { it('should return the image', function() { - const image = SelectionStateService.getImage(); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.equal('foo.img'); }); @@ -123,7 +123,7 @@ describe('Browser: SelectionState', function() { describe('.hasImage()', function() { it('should return true', function() { - const hasImage = SelectionStateService.hasImage(); + const hasImage = SelectionStateModel.hasImage(); m.chai.expect(hasImage).to.be.true; }); @@ -132,8 +132,8 @@ describe('Browser: SelectionState', function() { describe('.setImage()', function() { it('should override the image', function() { - SelectionStateService.setImage('bar.img'); - const image = SelectionStateService.getImage(); + SelectionStateModel.setImage('bar.img'); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.equal('bar.img'); }); @@ -142,8 +142,8 @@ describe('Browser: SelectionState', function() { describe('.removeImage()', function() { it('should clear the image', function() { - SelectionStateService.removeImage(); - const image = SelectionStateService.getImage(); + SelectionStateModel.removeImage(); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.be.undefined; }); @@ -156,8 +156,8 @@ describe('Browser: SelectionState', function() { describe('.setImage()', function() { it('should be able to set an image', function() { - SelectionStateService.setImage('foo.img'); - const image = SelectionStateService.getImage(); + SelectionStateModel.setImage('foo.img'); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.equal('foo.img'); }); @@ -168,20 +168,20 @@ describe('Browser: SelectionState', function() { describe('given a drive', function() { beforeEach(function() { - SelectionStateService.setDrive('/dev/disk2'); - SelectionStateService.setImage('foo.img'); + SelectionStateModel.setDrive('/dev/disk2'); + SelectionStateModel.setImage('foo.img'); }); describe('.clear()', function() { it('should clear all selections', function() { - m.chai.expect(SelectionStateService.hasDrive()).to.be.true; - m.chai.expect(SelectionStateService.hasImage()).to.be.true; + m.chai.expect(SelectionStateModel.hasDrive()).to.be.true; + m.chai.expect(SelectionStateModel.hasImage()).to.be.true; - SelectionStateService.clear(); + SelectionStateModel.clear(); - m.chai.expect(SelectionStateService.hasDrive()).to.be.false; - m.chai.expect(SelectionStateService.hasImage()).to.be.false; + m.chai.expect(SelectionStateModel.hasDrive()).to.be.false; + m.chai.expect(SelectionStateModel.hasImage()).to.be.false; }); }); @@ -189,28 +189,28 @@ describe('Browser: SelectionState', function() { describe('given the preserveImage option', function() { beforeEach(function() { - SelectionStateService.clear({ + SelectionStateModel.clear({ preserveImage: true }); }); it('getDrive() should return undefined', function() { - const drive = SelectionStateService.getDrive(); + const drive = SelectionStateModel.getDrive(); m.chai.expect(drive).to.be.undefined; }); it('getImage() should return the image', function() { - const image = SelectionStateService.getImage(); + const image = SelectionStateModel.getImage(); m.chai.expect(image).to.equal('foo.img'); }); it('hasDrive() should return false', function() { - const hasDrive = SelectionStateService.hasDrive(); + const hasDrive = SelectionStateModel.hasDrive(); m.chai.expect(hasDrive).to.be.false; }); it('hasImage() should return true', function() { - const hasImage = SelectionStateService.hasImage(); + const hasImage = SelectionStateModel.hasImage(); m.chai.expect(hasImage).to.be.true; });