@aptpod/data-viz-create-visual-parts-react
Version:
template of npm project with typescript
78 lines (74 loc) • 1.56 kB
text/typescript
import { parse, defaultExtension, Extension } from './extension'
/**
* Parseのテスト
*/
describe('parse', () => {
type TestData = {
id: string
args: {
extension: any
}
exp: Extension
}
const testDatas: TestData[] = [
{
id: 'set extension to null',
args: {
extension: null,
},
exp: defaultExtension,
},
{
id: 'set extension to undefined',
args: {
extension: undefined,
},
exp: defaultExtension,
},
{
id: 'set extension to number',
args: {
extension: 123,
},
exp: defaultExtension,
},
{
id: 'set extension to empty object',
args: {
extension: {},
},
exp: defaultExtension,
},
{
id: 'set extension to all valid values',
args: {
extension: { hiddenIDs: ['x', 'y'] },
},
exp: { ...defaultExtension, hiddenIDs: ['x', 'y'] },
},
{
id: 'set extension to all invalid values',
args: {
extension: {
hiddenIDs: 'invalid string',
},
},
exp: defaultExtension,
},
{
id: 'set extension to additional property',
args: {
extension: {
hiddenIDs: ['x', 'y'],
additionalProperty: 'additionalProperty',
},
},
exp: { ...defaultExtension, hiddenIDs: ['x', 'y'] },
},
]
testDatas.forEach(({ id, args: { extension }, exp }) => {
test(id, () => {
expect(parse(extension)).toStrictEqual(exp)
})
})
})