mirror of
https://github.com/apache/superset.git
synced 2024-09-19 20:19:37 -04:00
add unit tests
This commit is contained in:
parent
83272eca4e
commit
ade55212b6
@ -18,7 +18,7 @@
|
|||||||
"pretest": "yarn run lint",
|
"pretest": "yarn run lint",
|
||||||
"prettier": "beemo prettier \"./packages/*/{src,test,storybook}/**/*.{js,jsx,ts,tsx,json,md}\"",
|
"prettier": "beemo prettier \"./packages/*/{src,test,storybook}/**/*.{js,jsx,ts,tsx,json,md}\"",
|
||||||
"release": "yarn run prepare-release && lerna publish && yarn run postrelease",
|
"release": "yarn run prepare-release && lerna publish && yarn run postrelease",
|
||||||
"test": "echo \"No test\"",
|
"test": "yarn run jest",
|
||||||
"test:watch": "beemo create-config jest --react && jest --watch"
|
"test:watch": "beemo create-config jest --react && jest --watch"
|
||||||
},
|
},
|
||||||
"repository": "https://github.com/apache-superset/superset-ui-legacy.git",
|
"repository": "https://github.com/apache-superset/superset-ui-legacy.git",
|
||||||
|
@ -0,0 +1,69 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. The ASF licenses this file
|
||||||
|
* to you 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 { getTimeOrNumberFormatter, formatLabel, tryNumify } from '../src/utils';
|
||||||
|
|
||||||
|
describe('nvd3/utils', () => {
|
||||||
|
describe('getTimeOrNumberFormatter(format)', () => {
|
||||||
|
it('is a function', () => {
|
||||||
|
expect(typeof getTimeOrNumberFormatter).toBe('function');
|
||||||
|
});
|
||||||
|
it('returns a date formatter if format is smart_date', () => {
|
||||||
|
const time = new Date(Date.UTC(2018, 10, 21, 22, 11));
|
||||||
|
expect(getTimeOrNumberFormatter('smart_date')(time)).toBe('10:11');
|
||||||
|
});
|
||||||
|
it('returns a number formatter otherwise', () => {
|
||||||
|
expect(getTimeOrNumberFormatter('.3s')(3000000)).toBe('3.00M');
|
||||||
|
expect(getTimeOrNumberFormatter()(3000100)).toBe('3.00M');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('formatLabel()', () => {
|
||||||
|
const verboseMap = {
|
||||||
|
foo: 'Foo',
|
||||||
|
bar: 'Bar',
|
||||||
|
};
|
||||||
|
|
||||||
|
it('formats simple labels', () => {
|
||||||
|
expect(formatLabel('foo')).toBe('foo');
|
||||||
|
expect(formatLabel(['foo'])).toBe('foo');
|
||||||
|
expect(formatLabel(['foo', 'bar'])).toBe('foo, bar');
|
||||||
|
});
|
||||||
|
it('formats simple labels with lookups', () => {
|
||||||
|
expect(formatLabel('foo', verboseMap)).toBe('Foo');
|
||||||
|
expect(formatLabel('baz', verboseMap)).toBe('baz');
|
||||||
|
expect(formatLabel(['foo'], verboseMap)).toBe('Foo');
|
||||||
|
expect(formatLabel(['foo', 'bar', 'baz'], verboseMap)).toBe('Foo, Bar, baz');
|
||||||
|
});
|
||||||
|
it('deals with time shift properly', () => {
|
||||||
|
expect(formatLabel(['foo', '1 hour offset'], verboseMap)).toBe('Foo, 1 hour offset');
|
||||||
|
expect(formatLabel(['foo', 'bar', 'baz', '2 hours offset'], verboseMap)).toBe(
|
||||||
|
'Foo, Bar, baz, 2 hours offset',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('tryNumify()', () => {
|
||||||
|
it('tryNumify works as expected', () => {
|
||||||
|
expect(tryNumify(5)).toBe(5);
|
||||||
|
expect(tryNumify('5')).toBe(5);
|
||||||
|
expect(tryNumify('5.1')).toBe(5.1);
|
||||||
|
expect(tryNumify('a string')).toBe('a string');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@ -0,0 +1,39 @@
|
|||||||
|
import isTruthy from '../../src/utils/isTruthy';
|
||||||
|
|
||||||
|
describe('isTruthy', () => {
|
||||||
|
it('evals false-looking strings properly', () => {
|
||||||
|
expect(isTruthy('f')).toBe(false);
|
||||||
|
expect(isTruthy('false')).toBe(false);
|
||||||
|
expect(isTruthy('no')).toBe(false);
|
||||||
|
expect(isTruthy('n')).toBe(false);
|
||||||
|
expect(isTruthy('F')).toBe(false);
|
||||||
|
expect(isTruthy('False')).toBe(false);
|
||||||
|
expect(isTruthy('NO')).toBe(false);
|
||||||
|
expect(isTruthy('N')).toBe(false);
|
||||||
|
});
|
||||||
|
it('evals true-looking strings properly', () => {
|
||||||
|
expect(isTruthy('t')).toBe(true);
|
||||||
|
expect(isTruthy('true')).toBe(true);
|
||||||
|
expect(isTruthy('yes')).toBe(true);
|
||||||
|
expect(isTruthy('y')).toBe(true);
|
||||||
|
expect(isTruthy('Y')).toBe(true);
|
||||||
|
expect(isTruthy('True')).toBe(true);
|
||||||
|
expect(isTruthy('Yes')).toBe(true);
|
||||||
|
expect(isTruthy('YES')).toBe(true);
|
||||||
|
});
|
||||||
|
it('evals bools properly', () => {
|
||||||
|
expect(isTruthy(false)).toBe(false);
|
||||||
|
expect(isTruthy(true)).toBe(true);
|
||||||
|
});
|
||||||
|
it('evals ints properly', () => {
|
||||||
|
expect(isTruthy(0)).toBe(false);
|
||||||
|
expect(isTruthy(1)).toBe(true);
|
||||||
|
});
|
||||||
|
it('evals constants properly', () => {
|
||||||
|
expect(isTruthy(null)).toBe(false);
|
||||||
|
expect(isTruthy(undefined)).toBe(false);
|
||||||
|
});
|
||||||
|
it('string auto is false', () => {
|
||||||
|
expect(isTruthy('false')).toBe(false);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user