@comicrelief/component-library 7.19.1 → 7.20.0

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