etcher/tests/shared/messages.spec.ts
Alexis Svinartchouk bff4355a1a Convert messages.spec.js to typescript
Change-type: patch
2020-01-27 12:35:17 +01:00

112 lines
3.1 KiB
TypeScript

/*
* 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).',
);
});
});
});
});