diff --git a/src/helpers/__tests__/__snapshots__/cssSnapshots.test.ts.snap b/src/helpers/__tests__/__snapshots__/cssSnapshots.test.ts.snap new file mode 100644 index 0000000..af0648c --- /dev/null +++ b/src/helpers/__tests__/__snapshots__/cssSnapshots.test.ts.snap @@ -0,0 +1,28 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`utils / cssSnapshots createExports should create an exports file 1`] = ` +" +declare const classes: { + 'classA': string; + 'ClassB': string; + 'class-c': string; + 'parent': string; + 'childA': string; + 'childB': string; + 'nestedChild': string; +}; +export default classes; +" +`; + +exports[`utils / cssSnapshots createExports should create an exports file 2`] = ` +" +declare const classes: { + 'local-class-inside-global': string; + 'local-class': string; + 'local-class-2': string; + 'local-class-inside-local': string; +}; +export default classes; +" +`; diff --git a/src/helpers/__tests__/cssSnapshots.test.ts b/src/helpers/__tests__/cssSnapshots.test.ts index adcbae0..2432ea7 100644 --- a/src/helpers/__tests__/cssSnapshots.test.ts +++ b/src/helpers/__tests__/cssSnapshots.test.ts @@ -44,14 +44,8 @@ describe('utils / cssSnapshots', () => { it('should create an exports file', () => { const exportsA = createExports(classesA); const exportsB = createExports(classesB); - // tslint:disable max-line-length - expect(exportsA).toMatchInlineSnapshot( - `"export const classA: string;export const ClassB: string;export const class-c: string;export const parent: string;export const childA: string;export const childB: string;export const nestedChild: string;"`, - ); - expect(exportsB).toMatchInlineSnapshot( - `"export const local-class-inside-global: string;export const local-class: string;export const local-class-2: string;export const local-class-inside-local: string;"`, - ); - // tslint:enable max-line-length + expect(exportsA).toMatchSnapshot(); + expect(exportsB).toMatchSnapshot(); }); }); }); diff --git a/src/helpers/cssSnapshots.ts b/src/helpers/cssSnapshots.ts index 2a4733c..b2f7720 100644 --- a/src/helpers/cssSnapshots.ts +++ b/src/helpers/cssSnapshots.ts @@ -7,10 +7,16 @@ const processor = postcss(postcssIcssSelectors({ mode: 'local' })); export const getClasses = (css: string) => extractICSS(processor.process(css).root).icssExports; -export const createExports = (classes: IICSSExports) => - Object.keys(classes) - .map((exportName) => `export const ${exportName}: string;`) - .join(''); + +const exportNameToProperty = (exportName: string) => `'${exportName}': string;`; +export const createExports = (classes: IICSSExports) => ` +declare const classes: { + ${Object.keys(classes) + .map(exportNameToProperty) + .join('\n ')} +}; +export default classes; +`; export const getDtsSnapshot = ( ts: typeof ts_module,