1
1
const { expect} = require ( 'chai' )
2
2
const { transform} = require ( 'babel-core' )
3
3
4
+ describe ( 'transform-plugins' , ( ) => {
5
+ var lib = function ( code ) {
6
+ return transform ( code , {
7
+ plugins : [ './transform-plugins' ]
8
+ } ) . code
9
+ }
10
+
11
+ it ( 'should transform plugins literal, should not transform non-literal' , ( ) => {
12
+ let node = `!{plugins: [{'default-unit-234': 'px'}, {selector: abc}]}`
13
+ expect ( lib ( node ) ) . to . equal ( `import cssobj_plugin_default_unit_234 from 'cssobj-plugin-default-unit-234';
14
+ !{ plugins: [cssobj_plugin_default_unit_234('px'), { selector: abc }] };` )
15
+
16
+ node = `!{plugins: [{'default-unit-234': 'px'}, {'localize': {space:'_my_'}}]}`
17
+ expect ( lib ( node ) ) . to . equal ( `import cssobj_plugin_localize from 'cssobj-plugin-localize';
18
+ import cssobj_plugin_default_unit_234 from 'cssobj-plugin-default-unit-234';
19
+ !{ plugins: [cssobj_plugin_default_unit_234('px'), cssobj_plugin_localize({ space: '_my_' })] };` )
20
+ } )
21
+
22
+ it ( 'should work with empty or non-plugins' , ( ) => {
23
+ let node = `!{plugins: null}`
24
+ expect ( lib ( node ) ) . to . equal ( `!{ plugins: null };` )
25
+ node = `!{plugins: []}`
26
+ expect ( lib ( node ) ) . to . equal ( `!{ plugins: [] };` )
27
+ node = `!{plugins: {abc: 'def'}}`
28
+ expect ( lib ( node ) ) . to . equal ( `!{ plugins: { abc: 'def' } };` )
29
+ } )
30
+ } )
31
+
4
32
describe ( 'babel-plugin-transform-cssobj-jsx' , ( ) => {
5
33
var lib = function ( code ) {
6
34
return transform ( code , {
@@ -9,32 +37,32 @@ describe('babel-plugin-transform-cssobj-jsx', () => {
9
37
}
10
38
11
39
it ( 'should mapClass for string literal' , ( ) => {
12
- const node = `var d= result.mapClass(<div className='a b c'><p class='abc' shouldNotMap='cde'>test</p></div>)`
40
+ let node = `var d= result.mapClass(<div className='a b c'><p class='abc' shouldNotMap='cde'>test</p></div>)`
13
41
expect ( lib ( node ) ) . to . equal ( `var d = <div className={result.mapClass('a b c')}><p class={result.mapClass('abc')} shouldNotMap="cde">test</p></div>;` )
14
42
} )
15
43
16
44
it ( 'should mapClass for expression container' , ( ) => {
17
- const node = `var d= result.mapClass(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
45
+ let node = `var d= result.mapClass(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
18
46
expect ( lib ( node ) ) . to . equal ( `var d = <div className={result.mapClass('a b c')}><p class={result.mapClass(getClass())}>test</p></div>;` )
19
47
} )
20
48
21
49
it ( 'should mapClass using complex cssobj result' , ( ) => {
22
- const node = `var d= state.result().mapClass(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
50
+ let node = `var d= state.result().mapClass(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
23
51
expect ( lib ( node ) ) . to . equal ( `var d = <div className={state.result().mapClass('a b c')}><p class={state.result().mapClass(getClass())}>test</p></div>;` )
24
52
} )
25
53
26
54
it ( 'should not work with computed object' , ( ) => {
27
- const node = `var d= result['mapClass'](<div className='a b c'><p class='abc'>test</p></div>)`
55
+ let node = `var d= result['mapClass'](<div className='a b c'><p class='abc'>test</p></div>)`
28
56
expect ( lib ( node ) ) . to . equal ( `var d = result['mapClass'](<div className="a b c"><p class="abc">test</p></div>);` )
29
57
} )
30
58
31
59
it ( 'should not work with non-member func call' , ( ) => {
32
- const node = `var d= mapClass(<div className='a b c'><p class='abc'>test</p></div>)`
60
+ let node = `var d= mapClass(<div className='a b c'><p class='abc'>test</p></div>)`
33
61
expect ( lib ( node ) ) . to . equal ( `var d = mapClass(<div className="a b c"><p class="abc">test</p></div>);` )
34
62
} )
35
63
36
64
it ( 'should not work with non-jsx args' , ( ) => {
37
- const node = `var d= result.mapClass('abc')`
65
+ let node = `var d= result.mapClass('abc')`
38
66
expect ( lib ( node ) ) . to . equal ( `var d = result.mapClass('abc');` )
39
67
} )
40
68
@@ -48,22 +76,22 @@ describe('babel-plugin-transform-cssobj-jsx with mapName option', () => {
48
76
} ) . code
49
77
}
50
78
it ( 'should mapClass for string literal' , ( ) => {
51
- const node = `var d= result.makeLocal(<div className='a b c'><p class='abc'>test</p></div>)`
79
+ let node = `var d= result.makeLocal(<div className='a b c'><p class='abc'>test</p></div>)`
52
80
expect ( lib ( node ) ) . to . equal ( `var d = <div className={result.mapClass('a b c')}><p class={result.mapClass('abc')}>test</p></div>;` )
53
81
} )
54
82
55
83
it ( 'should mapClass for expression container' , ( ) => {
56
- const node = `var d= result.makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
84
+ let node = `var d= result.makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
57
85
expect ( lib ( node ) ) . to . equal ( `var d = <div className={result.mapClass('a b c')}><p class={result.mapClass(getClass())}>test</p></div>;` )
58
86
} )
59
87
60
88
it ( 'should mapClass using complex cssobj result' , ( ) => {
61
- const node = `var d= state.result().makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
89
+ let node = `var d= state.result().makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
62
90
expect ( lib ( node ) ) . to . equal ( `var d = <div className={state.result().mapClass('a b c')}><p class={state.result().mapClass(getClass())}>test</p></div>;` )
63
91
} )
64
92
65
93
it ( 'should accept makeLocal only, without result' , ( ) => {
66
- const node = `var d= makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
94
+ let node = `var d= makeLocal(<div className={'a b c'}><p class={getClass()}>test</p></div>)`
67
95
expect ( lib ( node ) ) . to . equal ( `var d = <div className={makeLocal('a b c')}><p class={makeLocal(getClass())}>test</p></div>;` )
68
96
} )
69
97
} )
0 commit comments