@comicrelief/component-library 7.19.0 → 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 (82) 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/Molecules/VideoBanner/VideoBanner.js +14 -2
  41. package/dist/components/Molecules/VideoBanner/VideoBanner.md +1 -1
  42. package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
  43. package/dist/components/Organisms/Footer/data/footerCopy.js +1 -1
  44. package/package.json +1 -1
  45. package/src/components/Molecules/VideoBanner/VideoBanner.js +9 -3
  46. package/src/components/Molecules/VideoBanner/VideoBanner.md +1 -1
  47. package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
  48. package/src/components/Organisms/Footer/data/footerCopy.js +1 -1
  49. package/cypress/integration/components/Atoms/Checkbox.spec.js +0 -69
  50. package/cypress/integration/components/Atoms/Link.spec.js +0 -217
  51. package/cypress/integration/components/Atoms/Logo.spec.js +0 -155
  52. package/cypress/integration/components/Atoms/Pagination.spec.js +0 -217
  53. package/cypress/integration/components/Atoms/Picture.spec.js +0 -147
  54. package/cypress/integration/components/Atoms/RadioButton.spec.js +0 -81
  55. package/cypress/integration/components/Atoms/RichText.spec.js +0 -75
  56. package/cypress/integration/components/Atoms/Select.spec.js +0 -89
  57. package/cypress/integration/components/Atoms/Text.spec.js +0 -180
  58. package/cypress/integration/components/Atoms/TextArea.spec.js +0 -91
  59. package/cypress/integration/components/Molecules/ArticleTeaser.spec.js +0 -111
  60. package/cypress/integration/components/Molecules/Box.spec.js +0 -112
  61. package/cypress/integration/components/Molecules/Card.spec.js +0 -113
  62. package/cypress/integration/components/Molecules/DoubleCopy.spec.js +0 -81
  63. package/cypress/integration/components/Molecules/HeroBanner.spec.js +0 -71
  64. package/cypress/integration/components/Molecules/InfoBanner.spec.js +0 -71
  65. package/cypress/integration/components/Molecules/PartnerLink.spec.js +0 -70
  66. package/cypress/integration/components/Molecules/Promo.spec.js +0 -76
  67. package/cypress/integration/components/Molecules/SearchInput.spec.js +0 -74
  68. package/cypress/integration/components/Molecules/SearchResult.spec.js +0 -202
  69. package/cypress/integration/components/Molecules/ShareButton.spec.js +0 -78
  70. package/cypress/integration/components/Molecules/SingleMessage.spec.js +0 -537
  71. package/cypress/integration/components/Molecules/VideoBanner.spec.js +0 -70
  72. package/cypress/integration/components/Organisms/CookieBanner.spec.js +0 -82
  73. package/cypress/integration/components/Organisms/Footer.spec.js +0 -166
  74. /package/cypress/integration/components/{Atoms/Input.spec.js → atoms/input.spec.js} +0 -0
  75. /package/cypress/integration/components/{Atoms/SocialIcons.spec.js → atoms/socialIcons.spec.js} +0 -0
  76. /package/cypress/integration/components/{Molecules/CardDs.spec.js → molecules/cardDs.spec.js} +0 -0
  77. /package/cypress/integration/components/{Molecules/Typeahead.spec.js → molecules/typeahead.spec.js} +0 -0
  78. /package/cypress/integration/components/{Organisms/Donate.spec.js → organisms/donate.spec.js} +0 -0
  79. /package/cypress/integration/components/{Organisms/EmailSignUp.spec.js → organisms/emailSignUp.spec.js} +0 -0
  80. /package/cypress/integration/components/{Organisms/Header.spec.js → organisms/header.spec.js} +0 -0
  81. /package/cypress/integration/components/{Atoms/MarketingPreferencesDSForm.spec.js → organisms/marketingPreferencesDSForm.spec.js} +0 -0
  82. /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
+ });