File tree Expand file tree Collapse file tree 6 files changed +141
-69
lines changed Expand file tree Collapse file tree 6 files changed +141
-69
lines changed Original file line number Diff line number Diff line change
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports [` ACard render correctly with default props 1` ] = ` "<div class =\\"a-card a-card--variant-default a-card--elevation-medium\\">My first test</div>"`;
Original file line number Diff line number Diff line change
1
+ import { render } from '@testing-library/vue' ;
2
+ import ACard from '../a-card.vue' ;
3
+
4
+ describe ( 'ACard' , ( ) => {
5
+ it ( 'render correctly with default props' , ( ) => {
6
+ const { html } = render ( ACard , {
7
+ slots : {
8
+ default : 'My first test' ,
9
+ } ,
10
+ } ) ;
11
+ expect ( html ( ) ) . toMatchSnapshot ( ) ;
12
+ } ) ;
13
+
14
+ it ( 'render correctly with variant' , ( ) => {
15
+ const { container } = render ( ACard , {
16
+ props : {
17
+ variant : 'primary' ,
18
+ } ,
19
+ slots : {
20
+ default : 'My second test' ,
21
+ } ,
22
+ } ) ;
23
+ expect ( container . firstChild . classList . contains ( 'a-card--variant-primary' ) ) . toBe ( true ) ;
24
+ } ) ;
25
+
26
+ it ( 'render correctly with elevation' , ( ) => {
27
+ const { container } = render ( ACard , {
28
+ props : {
29
+ elevation : 'high' ,
30
+ } ,
31
+ slots : {
32
+ default : 'My second test' ,
33
+ } ,
34
+ } ) ;
35
+ expect ( container . firstChild . classList . contains ( 'a-card--elevation-high' ) ) . toBe ( true ) ;
36
+ } ) ;
37
+
38
+ it ( 'render correctly with elevation' , ( ) => {
39
+ const { container } = render ( ACard , {
40
+ props : {
41
+ tag : 'section' ,
42
+ } ,
43
+ slots : {
44
+ default : 'My second test' ,
45
+ } ,
46
+ } ) ;
47
+ expect ( container . firstChild . tagName ) . toBe ( 'SECTION' ) ;
48
+ } ) ;
49
+ } ) ;
Original file line number Diff line number Diff line change
1
+ .a-card {
2
+ --a-card--background-color : transparent ;
3
+ --a-card--border : none ;
4
+ --a-card--box-shadow : none ;
5
+ --a-card--padding : var (--size-large );
6
+ --a-card--color : inherit ;
7
+
8
+ background-color : var (--a-card--background-color );
9
+ border : var (--a-card--border );
10
+ border-radius : var (--border-radius-normal );
11
+ box-shadow : var (--a-card--box-shadow );
12
+ color : var (--a-card--color );
13
+ padding : var (--a-card--padding );
14
+ position : relative ;
15
+
16
+ & --elevation {
17
+ & -low {
18
+ --a-card--box-shadow : var (--shadow-elevation-01 );
19
+ }
20
+
21
+ & -medium {
22
+ --a-card--box-shadow : var (--shadow-elevation-02 );
23
+ }
24
+
25
+ & -high {
26
+ --a-card--box-shadow : var (--shadow-elevation-03 );
27
+ }
28
+ }
29
+
30
+ & --variant {
31
+ & -default {
32
+ --a-card--background-color : var (--colors-original-white );
33
+ }
34
+
35
+ & -success {
36
+ --a-card--background-color : var (--color-theme-success );
37
+ }
38
+
39
+ & -info {
40
+ --a-card--background-color : var (--color-theme-info );
41
+ }
42
+
43
+ & -danger {
44
+ --a-card--background-color : var (--color-theme-danger );
45
+ }
46
+
47
+ & -warn {
48
+ --a-card--background-color : var (--color-theme-warn );
49
+ }
50
+
51
+ & -primary {
52
+ --a-card--background-color : var (--color-theme-primary );
53
+ }
54
+
55
+ & -secondary {
56
+ --a-card--background-color : var (--color-theme-secondary );
57
+ }
58
+
59
+ & -tertiary {
60
+ --a-card--background-color : var (--color-theme-tertiary );
61
+ }
62
+ }
63
+ }
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ import ACard from './a-card.vue';
25
25
components: { ACard },
26
26
template: `
27
27
<div>
28
- <a-card elevation="low">With JSX </a-card>
28
+ <a-card elevation="low" variant="default">default </a-card>
29
29
<p />
30
30
<a-card elevation="low" variant="success">success</a-card>
31
31
<p />
@@ -55,11 +55,11 @@ import ACard from './a-card.vue';
55
55
components: { ACard },
56
56
template: `
57
57
<div>
58
- <a-card elevation="low">With JSX </a-card>
58
+ <a-card elevation="low">low </a-card>
59
59
<p />
60
- <a-card elevation="medium">success </a-card>
60
+ <a-card elevation="medium">medium </a-card>
61
61
<p />
62
- <a-card elevation="high">info </a-card>
62
+ <a-card elevation="high">high </a-card>
63
63
</div>
64
64
` ,
65
65
}}
@@ -74,11 +74,11 @@ import ACard from './a-card.vue';
74
74
components: { ACard },
75
75
template: `
76
76
<div>
77
- <a-card tag="div">With JSX </a-card>
77
+ <a-card tag="div">div </a-card>
78
78
<p />
79
- <a-card tag="button">success </a-card>
79
+ <a-card tag="button">button </a-card>
80
80
<p />
81
- <a-card tag="article">info </a-card>
81
+ <a-card tag="article">article </a-card>
82
82
</div>
83
83
` ,
84
84
}}
Original file line number Diff line number Diff line change 4
4
:class =" {
5
5
[`a-card`]: true,
6
6
[`a-card--variant-${variant}`]: variant,
7
- [`a-card--${size}`]: size,
8
7
[`a-card--elevation-${elevation}`]: elevation,
9
8
}"
10
9
>
13
12
</template >
14
13
15
14
<script >
15
+ import { shouldBeOneOf } from ' vue-prop-validation-helper' ;
16
+
16
17
export default {
17
18
props: {
18
19
variant: {
19
20
type: String ,
20
- default: ' ' ,
21
- },
22
- size: {
23
- type: String ,
24
- default: ' ' ,
21
+ default: ' default' ,
22
+ validator: shouldBeOneOf ([
23
+ ' default' ,
24
+ ' primary' ,
25
+ ' secondary' ,
26
+ ' tertiary' ,
27
+ ' warn' ,
28
+ ' success' ,
29
+ ' danger' ,
30
+ ' info' ,
31
+ ]),
25
32
},
26
33
elevation: {
27
34
type: String ,
28
35
default: ' medium' ,
36
+ validator: shouldBeOneOf ([
37
+ ' low' ,
38
+ ' medium' ,
39
+ ' high' ,
40
+ ]),
29
41
},
30
42
tag: {
31
43
type: String ,
@@ -34,59 +46,3 @@ export default {
34
46
},
35
47
};
36
48
</script >
37
-
38
- <style lang="scss">
39
- .a-card {
40
- --a-card--padding : var (--size-large );
41
- --a-card--background-color : var (--colors-original-white );
42
-
43
- background-color : var (--a-card--background-color );
44
- border-radius : var (--border-radius-normal );
45
- padding : var (--a-card--padding );
46
- position : relative ;
47
-
48
- & --elevation {
49
- & -low {
50
- box-shadow : var (--shadow-elevation-01 );
51
- }
52
-
53
- & -medium {
54
- box-shadow : var (--shadow-elevation-02 );
55
- }
56
-
57
- & -high {
58
- box-shadow : var (--shadow-elevation-03 );
59
- }
60
- }
61
-
62
- & --variant {
63
- & -success {
64
- --a-card--background-color : var (--color-theme-success );
65
- }
66
-
67
- & -info {
68
- --a-card--background-color : var (--color-theme-info );
69
- }
70
-
71
- & -danger {
72
- --a-card--background-color : var (--color-theme-danger );
73
- }
74
-
75
- & -warn {
76
- --a-card--background-color : var (--color-theme-warn );
77
- }
78
-
79
- & -primary {
80
- --a-card--background-color : var (--color-theme-primary );
81
- }
82
-
83
- & -secondary {
84
- --a-card--background-color : var (--color-theme-secondary );
85
- }
86
-
87
- & -tertiary {
88
- --a-card--background-color : var (--color-theme-tertiary );
89
- }
90
- }
91
- }
92
- </style >
Original file line number Diff line number Diff line change 2
2
3
3
// Atoms
4
4
@import ' @/components/atoms/a-button/a-button.scss' ;
5
+ @import ' @/components/atoms/a-card/a-card.scss' ;
You can’t perform that action at this time.
0 commit comments