babel-plugin-transform-jsx-stylesheet
Version:
Transform stylesheet selector to style in JSX Elements.
35 lines • 2.99 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var syntaxJSX = require("babel-plugin-syntax-jsx");
var babel_core_1 = require("babel-core");
var index_1 = require("../index");
function getTransformCode(code, opts) {
return (0, babel_core_1.transform)(code, {
plugins: [
[index_1.default, opts],
syntaxJSX,
],
}).code;
}
exports.default = getTransformCode;
describe('css module', function () {
it('should transform css module', function () {
expect(getTransformCode("\n import { createElement, render } from 'rax';\n import styles from './app.css';\n\n render(<div className={styles.header} />);\n ")).toBe("\nimport { createElement, render } from 'rax';\nimport styles from './app.css';\n\nrender(<div style={styles.header} />);");
});
it('should transform css when `forceEnable` is true and is not `*.module.css`', function () {
expect(getTransformCode("\n import { createElement, render } from 'rax';\n import styles from './app.css';\n\n render(<div className={styles.header} />);\n ", { forceEnableCSS: true })).toBe("\nimport { createElement, render } from 'rax';\nimport styles from './app.css';\n\nrender(<div style={styles.header} />);");
});
it('should not transform css when `forceEnable` is true and is `*.module.css`', function () {
expect(getTransformCode("\n import { createElement, render } from 'rax';\n import styles from './app.module.css';\n\n render(<div className={styles.header} />);\n ", { forceEnableCSS: true })).toBe("\nimport { createElement, render } from 'rax';\nimport styles from './app.module.css';\n\nrender(<div className={styles.header} />);");
});
it('should not transform css when `forceEnableCSS` is true and module or not module simultaneously exist', function () {
expect(getTransformCode("\nimport { createElement, render } from 'rax';\nimport app from './app.css';\nimport styles from './app.module.css';\n\nrender(<div className={styles.header} style={app.header} />);\n", { forceEnableCSS: true })).toBe("\nimport { createElement, render } from 'rax';\nimport app from './app.css';\nimport styles from './app.module.css';\n\nrender(<div className={styles.header} style={app.header} />);");
});
it('should transform code correctly when `retainClassName` is true', function () {
expect(getTransformCode("\nimport { createElement, render } from 'rax';\nimport styles from './app.css';\n\nrender(<div className={styles.header} />);\n", { retainClassName: true })).toMatchSnapshot();
});
it('should transform code correctly when `retainClassName` is true and use different attr', function () {
expect(getTransformCode("\nimport { createElement, render } from 'rax';\nimport styles from './app.css';\n\nrender(<div className={styles.header} style={styles.container}/>);\n", { retainClassName: true })).toMatchSnapshot();
});
});
//# sourceMappingURL=module.js.map