superset/superset-frontend/temporary_superset_ui/superset-ui/packages/superset-ui-number-format/test/NumberFormatterRegistry.test.js

33 lines
1.2 KiB
JavaScript
Raw Normal View History

import NumberFormatterRegistry from '../src/NumberFormatterRegistry';
import NumberFormatter from '../src/NumberFormatter';
describe('NumberFormatterRegistry', () => {
let registry;
beforeEach(() => {
registry = new NumberFormatterRegistry();
});
describe('.get(format)', () => {
it('creates and returns a new formatter if does not exist', () => {
const formatter = registry.get('.2f');
expect(formatter).toBeInstanceOf(NumberFormatter);
expect(formatter.format(100)).toEqual('100.00');
});
it('returns an existing formatter if already exists', () => {
const formatter = registry.get('.2f');
const formatter2 = registry.get('.2f');
expect(formatter).toBe(formatter2);
});
it('falls back to default format if format is not specified', () => {
registry.setDefaultKey('.1f');
const formatter = registry.get();
expect(formatter.format(100)).toEqual('100.0');
});
});
describe('.format(format, value)', () => {
it('return the value with the specified format', () => {
expect(registry.format('.2f', 100)).toEqual('100.00');
expect(registry.format(',d', 100)).toEqual('100');
});
});
});