mirror of
https://github.com/captbaritone/webamp.git
synced 2026-01-24 02:36:00 +00:00
131 lines
3.7 KiB
JavaScript
131 lines
3.7 KiB
JavaScript
jest.unmock('../utils');
|
|
|
|
import {
|
|
getTimeObj,
|
|
getTimeStr,
|
|
getBalanceText,
|
|
getVolumeText,
|
|
getPositionText,
|
|
getMediaText,
|
|
getDoubleSizeModeText,
|
|
wrapForMarquee
|
|
} from '../utils';
|
|
|
|
describe('getTimeObj', () => {
|
|
it('expresses seconds as an object', () => {
|
|
const actual = getTimeObj(1234);
|
|
const expected = {
|
|
minutesFirstDigit: 2,
|
|
minutesSecondDigit: 0,
|
|
secondsFirstDigit: 3,
|
|
secondsSecondDigit: 4
|
|
};
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getTimeStr', () => {
|
|
it('expresses seconds as string', () => {
|
|
const actual = getTimeStr(1234);
|
|
const expected = '20:34';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('pads with zeros', () => {
|
|
const actual = getTimeStr(5);
|
|
const expected = '00:05';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('truncates extra minutes', () => {
|
|
const actual = getTimeStr(540000);
|
|
const expected = '9000:00';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getBalanceText', () => {
|
|
it('treats negative numbers as left', () => {
|
|
const actual = getBalanceText(-25);
|
|
const expected = 'Balance: 25% Left';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('treats positive numbers as right', () => {
|
|
const actual = getBalanceText(25);
|
|
const expected = 'Balance: 25% Right';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('has a special case for center', () => {
|
|
const actual = getBalanceText(0);
|
|
const expected = 'Balance: Center';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getVolumeText', () => {
|
|
it('expresses volume as percent', () => {
|
|
const actual = getVolumeText(50);
|
|
const expected = 'Volume: 50%';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getPositionText', () => {
|
|
it('formats a position', () => {
|
|
const duration = 86;
|
|
const seekToPercent = 85;
|
|
const actual = getPositionText(duration, seekToPercent);
|
|
const expected = 'Seek to: 01:13/01:26 (85%)';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getMediaText', () => {
|
|
it('formats a name and duration', () => {
|
|
const name = 'My Great Song';
|
|
const duration = 86;
|
|
const actual = getMediaText(name, duration);
|
|
const expected = 'My Great Song (01:26) *** ';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('wrapForMarquee', () => {
|
|
const long = 'This is a long string. Longer than 30 characters!';
|
|
it('truncates to 30 characters', () => {
|
|
const actual = wrapForMarquee(long, 0);
|
|
const expected = 'This is a long string. Longer ';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('offsets by the number of steps', () => {
|
|
const actual = wrapForMarquee(long, 8);
|
|
const expected = 'a long string. Longer than 30 ';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('wraps around when step > text length', () => {
|
|
const actual = wrapForMarquee(long, 51);
|
|
const expected = 'his is a long string. Longer t';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('wraps text when it gets to the end', () => {
|
|
const actual = wrapForMarquee(long, 30);
|
|
const expected = 'than 30 characters! This is a ';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('does not step through short strings', () => {
|
|
const actual = wrapForMarquee('Short string', 30);
|
|
const expected = 'Short string';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|
|
|
|
describe('getDoubleSizeModeText', () => {
|
|
it('prompts to enable when disabled', () => {
|
|
const actual = getDoubleSizeModeText(true);
|
|
const expected = 'Disable doublesize mode';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
it('prompts to disable when enabled', () => {
|
|
const actual = getDoubleSizeModeText(false);
|
|
const expected = 'Enable doublesize mode';
|
|
expect(actual).toEqual(expected);
|
|
});
|
|
});
|