41 lines
1.7 KiB
JavaScript
41 lines
1.7 KiB
JavaScript
import { deserialize } from 'src/services/theme_data/iss_deserializer.js'
|
|
import { serialize } from 'src/services/theme_data/iss_serializer.js'
|
|
const componentsContext = require.context('src', true, /\.style.js(on)?$/)
|
|
|
|
describe('ISS (de)serialization', () => {
|
|
componentsContext.keys().forEach(key => {
|
|
const component = componentsContext(key).default
|
|
|
|
it(`(De)serialization of component ${component.name} works`, () => {
|
|
const normalized = component.defaultRules.map(x => ({ component: component.name, ...x }))
|
|
const serialized = serialize(normalized)
|
|
const deserialized = deserialize(serialized)
|
|
|
|
// for some reason comparing objects directly fails the assert
|
|
expect(JSON.stringify(deserialized, null, 2)).to.equal(JSON.stringify(normalized, null, 2))
|
|
})
|
|
})
|
|
|
|
/*
|
|
// Debug snippet
|
|
const onlyComponent = componentsContext('./components/panel_header.style.js').default
|
|
it.only(`(De)serialization of component ${onlyComponent.name} works`, () => {
|
|
const normalized = onlyComponent.defaultRules.map(x => ({ component: onlyComponent.name, ...x }))
|
|
console.log('BEGIN INPUT ================')
|
|
console.log(normalized)
|
|
console.log('END INPUT ==================')
|
|
const serialized = serialize(normalized)
|
|
console.log('BEGIN SERIAL ===============')
|
|
console.log(serialized)
|
|
console.log('END SERIAL =================')
|
|
const deserialized = deserialize(serialized)
|
|
console.log('BEGIN DESERIALIZED =========')
|
|
console.log(serialized)
|
|
console.log('END DESERIALIZED ===========')
|
|
|
|
// for some reason comparing objects directly fails the assert
|
|
expect(JSON.stringify(deserialized, null, 2)).to.equal(JSON.stringify(normalized, null, 2))
|
|
})
|
|
/* */
|
|
})
|