diff --git a/tests/shared/messages.spec.js b/tests/shared/messages.spec.js deleted file mode 100644 index 83257682..00000000 --- a/tests/shared/messages.spec.js +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2016 balena.io - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -'use strict' - -const m = require('mochainon') -const _ = require('lodash') -// eslint-disable-next-line node/no-missing-require -const messages = require('../../lib/shared/messages') - -describe('Shared: Messages', function () { - beforeEach(function () { - this.drives = [ - { - description: 'My Drive', - displayName: '/dev/disk1' - }, - { - description: 'Other Drive', - displayName: '/dev/disk2' - } - ] - }) - - it('should contain object properties', function () { - m.chai.expect(_.every(_.map(messages, _.isPlainObject))).to.be.true - }) - - it('should contain function properties in each category', function () { - _.each(messages, (category) => { - m.chai.expect(_.every(_.map(category, _.isFunction))).to.be.true - }) - }) - - describe('.info', function () { - describe('.flashComplete()', function () { - it('should use singular when there are single results', function () { - const msg = messages.info.flashComplete('image.img', this.drives, { - failed: 1, - successful: 1 - }) - - m.chai.expect(msg).to.equal('image.img was successfully flashed to 1 target and failed to be flashed to 1 target') - }) - - it('should use plural when there are multiple results', function () { - const msg = messages.info.flashComplete('image.img', this.drives, { - failed: 2, - successful: 2 - }) - - m.chai.expect(msg).to.equal('image.img was successfully flashed to 2 targets and failed to be flashed to 2 targets') - }) - - it('should not contain failed target part when there are none', function () { - const msg = messages.info.flashComplete('image.img', this.drives, { - failed: 0, - successful: 2 - }) - - m.chai.expect(msg).to.equal('image.img was successfully flashed to 2 targets') - }) - - it('should show drive name and description when only target', function () { - const msg = messages.info.flashComplete('image.img', this.drives, { - failed: 0, - successful: 1 - }) - - m.chai.expect(msg).to.equal('image.img was successfully flashed to My Drive (/dev/disk1)') - }) - }) - }) - - describe('.error', function () { - describe('.flashFailure()', function () { - it('should use plural when there are multiple drives', function () { - const msg = messages.error.flashFailure('image.img', this.drives) - - m.chai.expect(msg).to.equal('Something went wrong while writing image.img to 2 targets.') - }) - - it('should use singular when there is one drive', function () { - const msg = messages.error.flashFailure('image.img', [ this.drives[0] ]) - - m.chai.expect(msg).to.equal('Something went wrong while writing image.img to My Drive (/dev/disk1).') - }) - }) - }) -}) diff --git a/tests/shared/messages.spec.ts b/tests/shared/messages.spec.ts new file mode 100644 index 00000000..b0d18ad5 --- /dev/null +++ b/tests/shared/messages.spec.ts @@ -0,0 +1,111 @@ +/* + * Copyright 2016 balena.io + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { expect } from 'chai'; +import * as _ from 'lodash'; + +import * as messages from '../../lib/shared/messages'; + +describe('Shared: Messages', function() { + beforeEach(function() { + this.drives = [ + { + description: 'My Drive', + displayName: '/dev/disk1', + }, + { + description: 'Other Drive', + displayName: '/dev/disk2', + }, + ]; + }); + + it('should contain object properties', function() { + expect(_.every(_.map(messages, _.isPlainObject))).to.be.true; + }); + + it('should contain function properties in each category', function() { + _.each(messages, category => { + expect(_.every(_.map(category, _.isFunction))).to.be.true; + }); + }); + + describe('.info', function() { + describe('.flashComplete()', function() { + it('should use singular when there are single results', function() { + const msg = messages.info.flashComplete('image.img', this.drives, { + failed: 1, + successful: 1, + }); + + expect(msg).to.equal( + 'image.img was successfully flashed to 1 target and failed to be flashed to 1 target', + ); + }); + + it('should use plural when there are multiple results', function() { + const msg = messages.info.flashComplete('image.img', this.drives, { + failed: 2, + successful: 2, + }); + + expect(msg).to.equal( + 'image.img was successfully flashed to 2 targets and failed to be flashed to 2 targets', + ); + }); + + it('should not contain failed target part when there are none', function() { + const msg = messages.info.flashComplete('image.img', this.drives, { + failed: 0, + successful: 2, + }); + + expect(msg).to.equal('image.img was successfully flashed to 2 targets'); + }); + + it('should show drive name and description when only target', function() { + const msg = messages.info.flashComplete('image.img', this.drives, { + failed: 0, + successful: 1, + }); + + expect(msg).to.equal( + 'image.img was successfully flashed to My Drive (/dev/disk1)', + ); + }); + }); + }); + + describe('.error', function() { + describe('.flashFailure()', function() { + it('should use plural when there are multiple drives', function() { + const msg = messages.error.flashFailure('image.img', this.drives); + + expect(msg).to.equal( + 'Something went wrong while writing image.img to 2 targets.', + ); + }); + + it('should use singular when there is one drive', function() { + const msg = messages.error.flashFailure('image.img', [this.drives[0]]); + + expect(msg).to.equal( + 'Something went wrong while writing image.img to My Drive (/dev/disk1).', + ); + }); + }); + }); +});