@comicrelief/component-library 7.19.1 → 7.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/cypress/integration/components/atoms/button.spec.js +113 -0
  2. package/cypress/integration/components/atoms/buttonWithStates.spec.js +53 -0
  3. package/cypress/integration/components/atoms/checkbox.spec.js +68 -0
  4. package/cypress/integration/components/atoms/confetti.spec.js +52 -0
  5. package/cypress/integration/components/atoms/errorText.spec.js +51 -0
  6. package/cypress/integration/components/atoms/label.spec.js +104 -0
  7. package/cypress/integration/components/atoms/link.spec.js +207 -0
  8. package/cypress/integration/components/atoms/logo.spec.js +149 -0
  9. package/cypress/integration/components/atoms/pagination.spec.js +214 -0
  10. package/cypress/integration/components/atoms/picture.spec.js +147 -0
  11. package/cypress/integration/components/atoms/radioButton.spec.js +81 -0
  12. package/cypress/integration/components/atoms/richText.spec.js +75 -0
  13. package/cypress/integration/components/atoms/select.spec.js +89 -0
  14. package/cypress/integration/components/atoms/text.spec.js +180 -0
  15. package/cypress/integration/components/atoms/textArea.spec.js +91 -0
  16. package/cypress/integration/components/atoms/textInputWithDrop.spec.js +78 -0
  17. package/cypress/integration/components/molecules/accordion.spec.js +72 -0
  18. package/cypress/integration/components/molecules/articleTeaser.spec.js +110 -0
  19. package/cypress/integration/components/molecules/banner.spec.js +72 -0
  20. package/cypress/integration/components/molecules/box.spec.js +112 -0
  21. package/cypress/integration/components/molecules/card.spec.js +113 -0
  22. package/cypress/integration/components/molecules/chip.spec.js +70 -0
  23. package/cypress/integration/components/molecules/countdown.spec.js +73 -0
  24. package/cypress/integration/components/molecules/descriptor.spec.js +147 -0
  25. package/cypress/integration/components/molecules/doubleCopy.spec.js +81 -0
  26. package/cypress/integration/components/molecules/heroBanner.spec.js +71 -0
  27. package/cypress/integration/components/molecules/infoBanner.spec.js +71 -0
  28. package/cypress/integration/components/molecules/partnerLink.spec.js +70 -0
  29. package/cypress/integration/components/molecules/promo.spec.js +76 -0
  30. package/cypress/integration/components/{Molecules/SchoolLookup.spec.js → molecules/schoolLookup.spec.js} +6 -0
  31. package/cypress/integration/components/molecules/searchInput.spec.js +74 -0
  32. package/cypress/integration/components/molecules/searchResult.spec.js +202 -0
  33. package/cypress/integration/components/molecules/shareButton.spec.js +78 -0
  34. package/cypress/integration/components/molecules/simpleSchoolLookup.spec.js +84 -0
  35. package/cypress/integration/components/molecules/singleMessage.spec.js +537 -0
  36. package/cypress/integration/components/molecules/singleMessageDs.spec.js +248 -0
  37. package/cypress/integration/components/molecules/videoBanner.spec.js +140 -0
  38. package/cypress/integration/components/organisms/cookieBanner.spec.js +82 -0
  39. package/cypress/integration/components/organisms/footer.spec.js +166 -0
  40. package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
  41. package/dist/components/Organisms/Footer/data/footerCopy.js +1 -1
  42. package/package.json +1 -1
  43. package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
  44. package/src/components/Organisms/Footer/data/footerCopy.js +1 -1
  45. package/cypress/integration/components/Atoms/Checkbox.spec.js +0 -69
  46. package/cypress/integration/components/Atoms/Link.spec.js +0 -217
  47. package/cypress/integration/components/Atoms/Logo.spec.js +0 -155
  48. package/cypress/integration/components/Atoms/Pagination.spec.js +0 -217
  49. package/cypress/integration/components/Atoms/Picture.spec.js +0 -147
  50. package/cypress/integration/components/Atoms/RadioButton.spec.js +0 -81
  51. package/cypress/integration/components/Atoms/RichText.spec.js +0 -75
  52. package/cypress/integration/components/Atoms/Select.spec.js +0 -89
  53. package/cypress/integration/components/Atoms/Text.spec.js +0 -180
  54. package/cypress/integration/components/Atoms/TextArea.spec.js +0 -91
  55. package/cypress/integration/components/Molecules/ArticleTeaser.spec.js +0 -111
  56. package/cypress/integration/components/Molecules/Box.spec.js +0 -112
  57. package/cypress/integration/components/Molecules/Card.spec.js +0 -113
  58. package/cypress/integration/components/Molecules/DoubleCopy.spec.js +0 -81
  59. package/cypress/integration/components/Molecules/HeroBanner.spec.js +0 -71
  60. package/cypress/integration/components/Molecules/InfoBanner.spec.js +0 -71
  61. package/cypress/integration/components/Molecules/PartnerLink.spec.js +0 -70
  62. package/cypress/integration/components/Molecules/Promo.spec.js +0 -76
  63. package/cypress/integration/components/Molecules/SearchInput.spec.js +0 -74
  64. package/cypress/integration/components/Molecules/SearchResult.spec.js +0 -202
  65. package/cypress/integration/components/Molecules/ShareButton.spec.js +0 -78
  66. package/cypress/integration/components/Molecules/SingleMessage.spec.js +0 -537
  67. package/cypress/integration/components/Molecules/VideoBanner.spec.js +0 -70
  68. package/cypress/integration/components/Organisms/CookieBanner.spec.js +0 -82
  69. package/cypress/integration/components/Organisms/Footer.spec.js +0 -166
  70. /package/cypress/integration/components/{Atoms/Input.spec.js → atoms/input.spec.js} +0 -0
  71. /package/cypress/integration/components/{Atoms/SocialIcons.spec.js → atoms/socialIcons.spec.js} +0 -0
  72. /package/cypress/integration/components/{Molecules/CardDs.spec.js → molecules/cardDs.spec.js} +0 -0
  73. /package/cypress/integration/components/{Molecules/Typeahead.spec.js → molecules/typeahead.spec.js} +0 -0
  74. /package/cypress/integration/components/{Organisms/Donate.spec.js → organisms/donate.spec.js} +0 -0
  75. /package/cypress/integration/components/{Organisms/EmailSignUp.spec.js → organisms/emailSignUp.spec.js} +0 -0
  76. /package/cypress/integration/components/{Organisms/Header.spec.js → organisms/header.spec.js} +0 -0
  77. /package/cypress/integration/components/{Atoms/MarketingPreferencesDSForm.spec.js → organisms/marketingPreferencesDSForm.spec.js} +0 -0
  78. /package/cypress/integration/components/{Organisms/Membership.spec.js → organisms/membership.spec.js} +0 -0
@@ -0,0 +1,112 @@
1
+ describe('Box component', () => {
2
+ before(() => {
3
+ // go to box component
4
+ cy.visit('/#box');
5
+ });
6
+
7
+ describe('props and methods section', () => {
8
+ beforeEach(() => {
9
+ cy.get('[data-testid="Box-container"] button[name="rsg-usage"]')
10
+ .contains('Props & methods')
11
+ .as('propsBtn');
12
+
13
+ cy.get('@propsBtn')
14
+ .closest('[class^=rsg--tabs]')
15
+ .as('container');
16
+ });
17
+
18
+ it('is present', () => {
19
+ cy.get('@propsBtn').should('exist');
20
+ });
21
+
22
+ it('does not show table initially', () => {
23
+ cy.get('@container')
24
+ .find('table')
25
+ .should('not.exist');
26
+ });
27
+
28
+ it('shows the table on button click', () => {
29
+ cy.get('@propsBtn').click();
30
+ cy.get('@container')
31
+ .find('table')
32
+ .should('contain', 'Prop name');
33
+ });
34
+ });
35
+
36
+ describe('Box example 1 section', () => {
37
+ beforeEach(() => {
38
+ cy.get('[data-testid="Box-example-1"]')
39
+ .as('container')
40
+ .find('[data-preview="Box"]')
41
+ .as('preview');
42
+
43
+ cy.get('@container')
44
+ .find('button')
45
+ .contains('View Code')
46
+ .as('viewCodeBtn');
47
+ });
48
+
49
+ it('renders box preview', () => {
50
+ cy.get('@container')
51
+ .find('h3')
52
+ .should('exist')
53
+ .contains('Title');
54
+ cy.get('@container')
55
+ .find('p')
56
+ .should('exist')
57
+ .contains('Text body copy description');
58
+ });
59
+
60
+ it('has view code button', () => {
61
+ cy.get('@viewCodeBtn').should('exist');
62
+ });
63
+
64
+ it('shows code on click', () => {
65
+ cy.get('@viewCodeBtn').click();
66
+ cy.get('@container')
67
+ .find('textarea')
68
+ .should('exist');
69
+ });
70
+
71
+ it('closes code on click', () => {
72
+ cy.get('@viewCodeBtn').click();
73
+ });
74
+ });
75
+
76
+ describe('Box example 3 section', () => {
77
+ beforeEach(() => {
78
+ cy.get('[data-testid="Box-example-3"]')
79
+ .as('container')
80
+ .find('[data-preview="Box"]')
81
+ .as('preview');
82
+
83
+ cy.get('@container')
84
+ .find('button')
85
+ .contains('View Code')
86
+ .as('viewCodeBtn');
87
+ });
88
+
89
+ it('renders box preview', () => {
90
+ cy.get('@container')
91
+ .should('exist');
92
+ });
93
+
94
+ it('has view code button', () => {
95
+ cy.get('@viewCodeBtn').should('exist');
96
+ });
97
+
98
+ it('shows code on click', () => {
99
+ cy.get('@viewCodeBtn').click();
100
+ cy.get('@container')
101
+ .find('textarea')
102
+ .should('exist');
103
+ });
104
+
105
+ it('closes code on click', () => {
106
+ cy.get('@viewCodeBtn').click();
107
+ cy.get('@container')
108
+ .find('textarea')
109
+ .should('not.exist');
110
+ });
111
+ });
112
+ });
@@ -0,0 +1,113 @@
1
+ describe('Card component', () => {
2
+ before(() => {
3
+ // go to card component
4
+ cy.visit('/#card');
5
+ cy.wait(2500)
6
+ });
7
+
8
+ describe('props and methods section', () => {
9
+ beforeEach(() => {
10
+ cy.get('[data-testid="Card-container"] button[name="rsg-usage"]')
11
+ .contains('Props & methods')
12
+ .as('propsBtn');
13
+
14
+ cy.get('@propsBtn')
15
+ .closest('[class^=rsg--tabs]')
16
+ .as('container');
17
+ });
18
+
19
+ it('is present', () => {
20
+ cy.get('@propsBtn').should('exist');
21
+ });
22
+
23
+ it('does not show table initially', () => {
24
+ cy.get('@container')
25
+ .find('table')
26
+ .should('not.exist');
27
+ });
28
+
29
+ it('shows the table on button click', () => {
30
+ cy.get('@propsBtn').click();
31
+ cy.get('@container')
32
+ .find('table')
33
+ .should('contain', 'Prop name');
34
+ });
35
+ });
36
+
37
+ describe('Card example 1 section', () => {
38
+ beforeEach(() => {
39
+ cy.get('[data-testid="Card-example-1"]')
40
+ .as('container')
41
+ .find('[data-preview="Card"]')
42
+ .as('preview');
43
+
44
+ cy.get('@container')
45
+ .find('button')
46
+ .contains('View Code')
47
+ .as('viewCodeBtn');
48
+ });
49
+
50
+ it('renders card preview', () => {
51
+ cy.get('@container')
52
+ .find('h3')
53
+ .should('exist')
54
+ .contains('Title');
55
+ cy.get('@container')
56
+ .find('p')
57
+ .should('exist')
58
+ .contains('Text body copy description');
59
+ });
60
+
61
+ it('has view code button', () => {
62
+ cy.get('@viewCodeBtn').should('exist');
63
+ });
64
+
65
+ it('shows code on click', () => {
66
+ cy.get('@viewCodeBtn').click();
67
+ cy.get('@container')
68
+ .find('textarea')
69
+ .should('exist');
70
+ });
71
+
72
+ it('closes code on click', () => {
73
+ cy.get('@viewCodeBtn').click();
74
+ });
75
+ });
76
+
77
+ describe('Card no body section', () => {
78
+ beforeEach(() => {
79
+ cy.get('[data-testid="Card-example-3"]')
80
+ .as('container')
81
+ .find('[data-preview="Card"]')
82
+ .as('preview');
83
+
84
+ cy.get('@container')
85
+ .find('button')
86
+ .contains('View Code')
87
+ .as('viewCodeBtn');
88
+ });
89
+
90
+ it('renders card no body preview', () => {
91
+ cy.get('@container')
92
+ .should('exist');
93
+ });
94
+
95
+ it('has view code button', () => {
96
+ cy.get('@viewCodeBtn').should('exist');
97
+ });
98
+
99
+ it('shows code on click', () => {
100
+ cy.get('@viewCodeBtn').click();
101
+ cy.get('@container')
102
+ .find('textarea')
103
+ .should('exist');
104
+ });
105
+
106
+ it('closes code on click', () => {
107
+ cy.get('@viewCodeBtn').click();
108
+ cy.get('@container')
109
+ .find('textarea')
110
+ .should('not.exist');
111
+ });
112
+ });
113
+ });
@@ -0,0 +1,70 @@
1
+ describe('Chip component', () => {
2
+ before(() => {
3
+ // go to chip component
4
+ cy.visit('/#chip');
5
+ cy.wait(2500)
6
+ });
7
+
8
+ describe('props and methods section', () => {
9
+ beforeEach(() => {
10
+ cy.get('[data-testid="Chip-container"] button[name="rsg-usage"]')
11
+ .contains('Props & methods')
12
+ .as('propsBtn');
13
+
14
+ cy.get('@propsBtn')
15
+ .closest('[class^=rsg--tabs]')
16
+ .as('container');
17
+ });
18
+
19
+ it('is present', () => {
20
+ cy.get('@propsBtn').should('exist');
21
+ });
22
+
23
+ it('does not show table initially', () => {
24
+ cy.get('@container')
25
+ .find('table')
26
+ .should('not.exist');
27
+ });
28
+
29
+ it('shows the table on button click', () => {
30
+ cy.get('@propsBtn').click();
31
+ cy.get('@container')
32
+ .find('table')
33
+ .should('contain', 'Prop name');
34
+ });
35
+ });
36
+
37
+ describe('Chip section', () => {
38
+ beforeEach(() => {
39
+ cy.get('[data-testid="Chip-example-1"]')
40
+ .as('container')
41
+ .find('[data-preview="Chip"]')
42
+ .as('preview');
43
+
44
+ cy.get('@container')
45
+ .find('button')
46
+ .contains('View Code')
47
+ .as('viewCodeBtn');
48
+ });
49
+
50
+ it('chip component should have label element', () => {
51
+ cy.get('@container')
52
+ .find('label').should('exist');
53
+ });
54
+
55
+ it('has view code button', () => {
56
+ cy.get('@viewCodeBtn').should('exist');
57
+ });
58
+
59
+ it('shows code on click', () => {
60
+ cy.get('@viewCodeBtn').click();
61
+ cy.get('@container')
62
+ .find('textarea')
63
+ .should('exist');
64
+ });
65
+
66
+ it('closes code on click', () => {
67
+ cy.get('@viewCodeBtn').click();
68
+ });
69
+ });
70
+ });
@@ -0,0 +1,73 @@
1
+ describe('Countdown component', () => {
2
+ before(() => {
3
+ // go to countdown component
4
+ cy.visit('/#countdown');
5
+ cy.wait(2500)
6
+ });
7
+
8
+ describe('props and methods section', () => {
9
+ beforeEach(() => {
10
+ cy.get('[data-testid="Countdown-container"] button[name="rsg-usage"]')
11
+ .contains('Props & methods')
12
+ .as('propsBtn');
13
+
14
+ cy.get('@propsBtn')
15
+ .closest('[class^=rsg--tabs]')
16
+ .as('container');
17
+ });
18
+
19
+ it('is present', () => {
20
+ cy.get('@propsBtn').should('exist');
21
+ });
22
+
23
+ it('does not show table initially', () => {
24
+ cy.get('@container')
25
+ .find('table')
26
+ .should('not.exist');
27
+ });
28
+
29
+ it('shows the table on button click', () => {
30
+ cy.get('@propsBtn').click();
31
+ cy.get('@container')
32
+ .find('table')
33
+ .should('contain', 'Prop name');
34
+ });
35
+ });
36
+
37
+ describe('Countdown section', () => {
38
+ beforeEach(() => {
39
+ cy.get('[data-testid="Countdown-examples"]')
40
+ .find('p')
41
+ .contains('Limit is 365 days');
42
+ cy.get('[data-testid="Countdown-example-1"]')
43
+ .as('container')
44
+ .find('[data-preview="Countdown"]')
45
+ .as('preview');
46
+
47
+ cy.get('@container')
48
+ .find('button')
49
+ .contains('View Code')
50
+ .as('viewCodeBtn');
51
+ });
52
+
53
+ it('countdown component', () => {
54
+ cy.get('@container')
55
+ .find('h2').should('exist');
56
+ });
57
+
58
+ it('has view code button', () => {
59
+ cy.get('@viewCodeBtn').should('exist');
60
+ });
61
+
62
+ it('shows code on click', () => {
63
+ cy.get('@viewCodeBtn').click();
64
+ cy.get('@container')
65
+ .find('textarea')
66
+ .should('exist');
67
+ });
68
+
69
+ it('closes code on click', () => {
70
+ cy.get('@viewCodeBtn').click();
71
+ });
72
+ });
73
+ });
@@ -0,0 +1,147 @@
1
+ describe('Descriptor component', () => {
2
+ before(() => {
3
+ // go to descriptor component
4
+ cy.visit('/#descriptor');
5
+ cy.wait(2500)
6
+ });
7
+
8
+ describe('props and methods section', () => {
9
+ beforeEach(() => {
10
+ cy.get('[data-testid="Descriptor-container"] button[name="rsg-usage"]')
11
+ .contains('Props & methods')
12
+ .as('propsBtn');
13
+
14
+ cy.get('@propsBtn')
15
+ .closest('[class^=rsg--tabs]')
16
+ .as('container');
17
+ });
18
+
19
+ it('is present', () => {
20
+ cy.get('@propsBtn').should('exist');
21
+ });
22
+
23
+ it('does not show table initially', () => {
24
+ cy.get('@container')
25
+ .find('table')
26
+ .should('not.exist');
27
+ });
28
+
29
+ it('shows the table on button click', () => {
30
+ cy.get('@propsBtn').click();
31
+ cy.get('@container')
32
+ .find('table')
33
+ .should('contain', 'Prop name');
34
+ });
35
+ });
36
+
37
+ describe('Descriptor section: Descriptor-example-1', () => {
38
+ beforeEach(() => {
39
+ cy.get('[data-testid="Descriptor-examples"]')
40
+ .find('h3')
41
+ .contains('Descriptor Component');
42
+ cy.get('[data-testid="Descriptor-example-1"]')
43
+ .as('container')
44
+ .find('[data-preview="Descriptor"]')
45
+ .as('preview');
46
+
47
+ cy.get('@container')
48
+ .find('button')
49
+ .contains('View Code')
50
+ .as('viewCodeBtn');
51
+ });
52
+
53
+ it('should have necessary elements under Descriptor-example-1', () => {
54
+ cy.get('@container')
55
+ .find('span')
56
+ .contains('15/06/2020')
57
+ .should('exist');
58
+ cy.get('[data-testid="Descriptor-example-1"]')
59
+ .find('img:nth-child(1)[alt]')
60
+ .should('exist');
61
+ cy.get('@container')
62
+ .find('img:nth-child(2)[alt]')
63
+ .should('exist');
64
+ cy.get('@container')
65
+ .find('span')
66
+ .should('exist');
67
+ cy.get('@container')
68
+ .find('h3')
69
+ .should('exist');
70
+ cy.get('@container')
71
+ .find('div:nth-child(4)')
72
+ .should('exist');
73
+ });
74
+
75
+ it('has view code button', () => {
76
+ cy.get('@viewCodeBtn').should('exist');
77
+ });
78
+
79
+ it('shows code on click', () => {
80
+ cy.get('@viewCodeBtn').click();
81
+ cy.get('@container')
82
+ .find('textarea')
83
+ .should('exist');
84
+ });
85
+
86
+ it('closes code on click', () => {
87
+ cy.get('@viewCodeBtn').click();
88
+ });
89
+ });
90
+
91
+ describe('Descriptor section: Descriptor-example-2', () => {
92
+ beforeEach(() => {
93
+ cy.get('[data-testid="Descriptor-examples"]')
94
+ .find('h3')
95
+ .contains('Descriptor Component');
96
+ cy.get('[data-testid="Descriptor-example-2"]')
97
+ .as('container')
98
+ .find('[data-preview="Descriptor"]')
99
+ .as('preview');
100
+
101
+ cy.get('@container')
102
+ .find('button')
103
+ .contains('View Code')
104
+ .as('viewCodeBtn');
105
+ });
106
+
107
+ it('should have necessary elements under Descriptor-example-2', () => {
108
+ cy.get('@container')
109
+ .find('span')
110
+ .contains('15/06/2020')
111
+ .should('exist');
112
+ cy.get('@container')
113
+ .find('img:nth-child(1)[alt]')
114
+ .should('exist');
115
+ cy.get('@container')
116
+ .find('img:nth-child(2)[alt]')
117
+ .should('exist');
118
+ cy.get('@container')
119
+ .find('img:nth-child(3)[alt]')
120
+ .should('exist');
121
+ cy.get('@container')
122
+ .find('span')
123
+ .should('exist');
124
+ cy.get('@container')
125
+ .find('h3')
126
+ .should('exist');
127
+ cy.get('@container')
128
+ .find('div:nth-child(4)')
129
+ .should('exist');
130
+ });
131
+
132
+ it('has view code button', () => {
133
+ cy.get('@viewCodeBtn').should('exist');
134
+ });
135
+
136
+ it('shows code on click', () => {
137
+ cy.get('@viewCodeBtn').click();
138
+ cy.get('@container')
139
+ .find('textarea')
140
+ .should('exist');
141
+ });
142
+
143
+ it('closes code on click', () => {
144
+ cy.get('@viewCodeBtn').click();
145
+ });
146
+ });
147
+ });
@@ -0,0 +1,81 @@
1
+ describe('DoubleCopy component', () => {
2
+ before(() => {
3
+ // go to double copy component
4
+ cy.visit('/#doublecopy');
5
+ });
6
+
7
+ describe('props and methods section', () => {
8
+ beforeEach(() => {
9
+ cy.get('[data-testid="DoubleCopy-container"] button[name="rsg-usage"]')
10
+ .contains('Props & methods')
11
+ .as('propsBtn');
12
+
13
+ cy.get('@propsBtn')
14
+ .closest('[class^=rsg--tabs]')
15
+ .as('container');
16
+ });
17
+
18
+ it('is present', () => {
19
+ cy.get('@propsBtn').should('exist');
20
+ });
21
+
22
+ it('does not show table initially', () => {
23
+ cy.get('@container')
24
+ .find('table')
25
+ .should('not.exist');
26
+ });
27
+
28
+ it('shows the table on button click', () => {
29
+ cy.get('@propsBtn').click();
30
+ cy.get('@container')
31
+ .find('table')
32
+ .should('contain', 'Prop name');
33
+ });
34
+ });
35
+
36
+ describe('DoubleCopy section', () => {
37
+ beforeEach(() => {
38
+ cy.get('[data-testid="DoubleCopy-example-1"]')
39
+ .as('container')
40
+ .find('[data-preview="DoubleCopy"]')
41
+ .as('preview');
42
+
43
+ cy.get('@container')
44
+ .find('button')
45
+ .contains('View Code')
46
+ .as('viewCodeBtn');
47
+ });
48
+
49
+ it('renders doublecopy preview', () => {
50
+ cy.get('@container')
51
+ .find('h1')
52
+ .should('exist')
53
+ .contains('Left Copy');
54
+ cy.get('@container')
55
+ .find('p')
56
+ .should('exist');
57
+ cy.get('@container')
58
+ .find('div:nth-child(2) > div > h1')
59
+ .should('exist')
60
+ .contains('Right Copy');
61
+ cy.get('@container')
62
+ .find('div:nth-child(2) > div > p')
63
+ .should('exist')
64
+ });
65
+
66
+ it('has view code button', () => {
67
+ cy.get('@viewCodeBtn').should('exist');
68
+ });
69
+
70
+ it('shows code on click', () => {
71
+ cy.get('@viewCodeBtn').click();
72
+ cy.get('@container')
73
+ .find('textarea')
74
+ .should('exist');
75
+ });
76
+
77
+ it('closes code on click', () => {
78
+ cy.get('@viewCodeBtn').click();
79
+ });
80
+ });
81
+ });
@@ -0,0 +1,71 @@
1
+ describe('Herobanner component', () => {
2
+ before(() => {
3
+ // go to herobanner component
4
+ cy.visit('/#herobanner');
5
+ });
6
+
7
+ describe('props and methods section', () => {
8
+ beforeEach(() => {
9
+ cy.get('[data-testid="HeroBanner-container"] button[name="rsg-usage"]')
10
+ .contains('Props & methods')
11
+ .as('propsBtn');
12
+
13
+ cy.get('@propsBtn')
14
+ .closest('[class^=rsg--tabs]')
15
+ .as('container');
16
+ });
17
+
18
+ it('is present', () => {
19
+ cy.get('@propsBtn').should('exist');
20
+ });
21
+
22
+ it('does not show table initially', () => {
23
+ cy.get('@container')
24
+ .find('table')
25
+ .should('not.exist');
26
+ });
27
+
28
+ it('shows the table on button click', () => {
29
+ cy.get('@propsBtn').click();
30
+ cy.get('@container')
31
+ .find('table')
32
+ .should('contain', 'Prop name');
33
+ });
34
+ });
35
+
36
+ describe('HeroBanner section', () => {
37
+ beforeEach(() => {
38
+ cy.get('[data-testid="HeroBanner-example-1"]')
39
+ .as('container')
40
+ .find('[data-preview="HeroBanner"]')
41
+ .as('preview');
42
+
43
+ cy.get('@container')
44
+ .find('button')
45
+ .contains('View Code')
46
+ .as('viewCodeBtn');
47
+ });
48
+
49
+ it('renders HeroBanner preview', () => {
50
+ cy.get('@container')
51
+ .find('h1')
52
+ .should('exist')
53
+ .contains('Change Please')
54
+ });
55
+
56
+ it('has view code button', () => {
57
+ cy.get('@viewCodeBtn').should('exist');
58
+ });
59
+
60
+ it('shows code on click', () => {
61
+ cy.get('@viewCodeBtn').click();
62
+ cy.get('@container')
63
+ .find('textarea')
64
+ .should('exist');
65
+ });
66
+
67
+ it('closes code on click', () => {
68
+ cy.get('@viewCodeBtn').click();
69
+ });
70
+ });
71
+ });