@@ -7,33 +7,88 @@ import TestComponent from './TestComponent';
7
7
import headerFooter from '../headerFooter' ;
8
8
import Template from '../../components/Template' ;
9
9
10
- var bemHeader = require ( '../../lib/utils' ) . bemHelper ( 'ais-header' ) ;
11
- var bemFooter = require ( '../../lib/utils' ) . bemHelper ( 'ais-footer' ) ;
12
- var cx = require ( 'classnames' ) ;
13
-
14
10
import expectJSX from 'expect-jsx' ;
15
11
expect . extend ( expectJSX ) ;
16
12
17
13
describe ( 'headerFooter' , ( ) => {
18
14
var renderer ;
15
+ var defaultProps ;
19
16
20
17
beforeEach ( ( ) => {
21
18
let { createRenderer} = TestUtils ;
19
+ defaultProps = {
20
+ cssClasses : {
21
+ root : 'root' ,
22
+ body : 'body'
23
+ } ,
24
+ templateProps : {
25
+ }
26
+ } ;
22
27
renderer = createRenderer ( ) ;
23
28
} ) ;
24
29
25
- it ( 'should render headerFooter(<div />)' , ( ) => {
26
- var out = render ( { cssClasses : { root : 'wrapper' } } ) ;
30
+ it ( 'should render the component in a root and body' , ( ) => {
31
+ var out = render ( defaultProps ) ;
32
+ expect ( out ) . toEqualJSX (
33
+ < div className = "root" >
34
+ < div className = "body" >
35
+ < TestComponent { ...defaultProps } />
36
+ </ div >
37
+ </ div >
38
+ ) ;
39
+ } ) ;
40
+
41
+ it ( 'should add a header if such a template is passed' , ( ) => {
42
+ // Given
43
+ defaultProps . templateProps . templates = {
44
+ header : 'HEADER'
45
+ } ;
46
+ // When
47
+ var out = render ( defaultProps ) ;
48
+ // Then
49
+ var templateProps = {
50
+ data : { } ,
51
+ templateKey : 'header' ,
52
+ transformData : null ,
53
+ templates : {
54
+ header : 'HEADER'
55
+ }
56
+ } ;
27
57
expect ( out ) . toEqualJSX (
28
- < div className = "wrapper " >
29
- < div className = { cx ( bemHeader ( null ) ) } >
30
- < Template data = { { } } templateKey = "header" transformData = { null } />
58
+ < div className = "root " >
59
+ < div className = "ais-header" >
60
+ < Template { ... templateProps } />
31
61
</ div >
32
- < div className = { undefined } >
33
- < TestComponent cssClasses = { { root : 'wrapper' } } />
62
+ < div className = "body" >
63
+ < TestComponent { ...defaultProps } />
64
+ </ div >
65
+ </ div >
66
+ ) ;
67
+ } ) ;
68
+
69
+ it ( 'should add a footer if such a template is passed' , ( ) => {
70
+ // Given
71
+ defaultProps . templateProps . templates = {
72
+ footer : 'FOOTER'
73
+ } ;
74
+ // When
75
+ var out = render ( defaultProps ) ;
76
+ // Then
77
+ var templateProps = {
78
+ data : { } ,
79
+ templateKey : 'footer' ,
80
+ transformData : null ,
81
+ templates : {
82
+ footer : 'FOOTER'
83
+ }
84
+ } ;
85
+ expect ( out ) . toEqualJSX (
86
+ < div className = "root" >
87
+ < div className = "body" >
88
+ < TestComponent { ...defaultProps } />
34
89
</ div >
35
- < div className = { cx ( bemFooter ( null ) ) } >
36
- < Template data = { { } } templateKey = "footer" transformData = { null } />
90
+ < div className = "ais-footer" >
91
+ < Template { ... templateProps } />
37
92
</ div >
38
93
</ div >
39
94
) ;
0 commit comments