@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.
- package/cypress/integration/components/atoms/button.spec.js +113 -0
- package/cypress/integration/components/atoms/buttonWithStates.spec.js +53 -0
- package/cypress/integration/components/atoms/checkbox.spec.js +68 -0
- package/cypress/integration/components/atoms/confetti.spec.js +52 -0
- package/cypress/integration/components/atoms/errorText.spec.js +51 -0
- package/cypress/integration/components/atoms/label.spec.js +104 -0
- package/cypress/integration/components/atoms/link.spec.js +207 -0
- package/cypress/integration/components/atoms/logo.spec.js +149 -0
- package/cypress/integration/components/atoms/pagination.spec.js +214 -0
- package/cypress/integration/components/atoms/picture.spec.js +147 -0
- package/cypress/integration/components/atoms/radioButton.spec.js +81 -0
- package/cypress/integration/components/atoms/richText.spec.js +75 -0
- package/cypress/integration/components/atoms/select.spec.js +89 -0
- package/cypress/integration/components/atoms/text.spec.js +180 -0
- package/cypress/integration/components/atoms/textArea.spec.js +91 -0
- package/cypress/integration/components/atoms/textInputWithDrop.spec.js +78 -0
- package/cypress/integration/components/molecules/accordion.spec.js +72 -0
- package/cypress/integration/components/molecules/articleTeaser.spec.js +110 -0
- package/cypress/integration/components/molecules/banner.spec.js +72 -0
- package/cypress/integration/components/molecules/box.spec.js +112 -0
- package/cypress/integration/components/molecules/card.spec.js +113 -0
- package/cypress/integration/components/molecules/chip.spec.js +70 -0
- package/cypress/integration/components/molecules/countdown.spec.js +73 -0
- package/cypress/integration/components/molecules/descriptor.spec.js +147 -0
- package/cypress/integration/components/molecules/doubleCopy.spec.js +81 -0
- package/cypress/integration/components/molecules/heroBanner.spec.js +71 -0
- package/cypress/integration/components/molecules/infoBanner.spec.js +71 -0
- package/cypress/integration/components/molecules/partnerLink.spec.js +70 -0
- package/cypress/integration/components/molecules/promo.spec.js +76 -0
- package/cypress/integration/components/{Molecules/SchoolLookup.spec.js → molecules/schoolLookup.spec.js} +6 -0
- package/cypress/integration/components/molecules/searchInput.spec.js +74 -0
- package/cypress/integration/components/molecules/searchResult.spec.js +202 -0
- package/cypress/integration/components/molecules/shareButton.spec.js +78 -0
- package/cypress/integration/components/molecules/simpleSchoolLookup.spec.js +84 -0
- package/cypress/integration/components/molecules/singleMessage.spec.js +537 -0
- package/cypress/integration/components/molecules/singleMessageDs.spec.js +248 -0
- package/cypress/integration/components/molecules/videoBanner.spec.js +140 -0
- package/cypress/integration/components/organisms/cookieBanner.spec.js +82 -0
- package/cypress/integration/components/organisms/footer.spec.js +166 -0
- package/dist/components/Molecules/VideoBanner/VideoBanner.js +14 -2
- package/dist/components/Molecules/VideoBanner/VideoBanner.md +1 -1
- package/dist/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
- package/dist/components/Organisms/Footer/data/footerCopy.js +1 -1
- package/package.json +1 -1
- package/src/components/Molecules/VideoBanner/VideoBanner.js +9 -3
- package/src/components/Molecules/VideoBanner/VideoBanner.md +1 -1
- package/src/components/Organisms/Footer/__snapshots__/Footer.test.js.snap +1 -1
- package/src/components/Organisms/Footer/data/footerCopy.js +1 -1
- package/cypress/integration/components/Atoms/Checkbox.spec.js +0 -69
- package/cypress/integration/components/Atoms/Link.spec.js +0 -217
- package/cypress/integration/components/Atoms/Logo.spec.js +0 -155
- package/cypress/integration/components/Atoms/Pagination.spec.js +0 -217
- package/cypress/integration/components/Atoms/Picture.spec.js +0 -147
- package/cypress/integration/components/Atoms/RadioButton.spec.js +0 -81
- package/cypress/integration/components/Atoms/RichText.spec.js +0 -75
- package/cypress/integration/components/Atoms/Select.spec.js +0 -89
- package/cypress/integration/components/Atoms/Text.spec.js +0 -180
- package/cypress/integration/components/Atoms/TextArea.spec.js +0 -91
- package/cypress/integration/components/Molecules/ArticleTeaser.spec.js +0 -111
- package/cypress/integration/components/Molecules/Box.spec.js +0 -112
- package/cypress/integration/components/Molecules/Card.spec.js +0 -113
- package/cypress/integration/components/Molecules/DoubleCopy.spec.js +0 -81
- package/cypress/integration/components/Molecules/HeroBanner.spec.js +0 -71
- package/cypress/integration/components/Molecules/InfoBanner.spec.js +0 -71
- package/cypress/integration/components/Molecules/PartnerLink.spec.js +0 -70
- package/cypress/integration/components/Molecules/Promo.spec.js +0 -76
- package/cypress/integration/components/Molecules/SearchInput.spec.js +0 -74
- package/cypress/integration/components/Molecules/SearchResult.spec.js +0 -202
- package/cypress/integration/components/Molecules/ShareButton.spec.js +0 -78
- package/cypress/integration/components/Molecules/SingleMessage.spec.js +0 -537
- package/cypress/integration/components/Molecules/VideoBanner.spec.js +0 -70
- package/cypress/integration/components/Organisms/CookieBanner.spec.js +0 -82
- package/cypress/integration/components/Organisms/Footer.spec.js +0 -166
- /package/cypress/integration/components/{Atoms/Input.spec.js → atoms/input.spec.js} +0 -0
- /package/cypress/integration/components/{Atoms/SocialIcons.spec.js → atoms/socialIcons.spec.js} +0 -0
- /package/cypress/integration/components/{Molecules/CardDs.spec.js → molecules/cardDs.spec.js} +0 -0
- /package/cypress/integration/components/{Molecules/Typeahead.spec.js → molecules/typeahead.spec.js} +0 -0
- /package/cypress/integration/components/{Organisms/Donate.spec.js → organisms/donate.spec.js} +0 -0
- /package/cypress/integration/components/{Organisms/EmailSignUp.spec.js → organisms/emailSignUp.spec.js} +0 -0
- /package/cypress/integration/components/{Organisms/Header.spec.js → organisms/header.spec.js} +0 -0
- /package/cypress/integration/components/{Atoms/MarketingPreferencesDSForm.spec.js → organisms/marketingPreferencesDSForm.spec.js} +0 -0
- /package/cypress/integration/components/{Organisms/Membership.spec.js → organisms/membership.spec.js} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
describe('Button component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to button component
|
|
4
|
+
cy.visit('/#button');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="Button-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('Plain Button: Button-example-0', () => {
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
cy.get('[data-testid="Button-example-0"')
|
|
39
|
+
.as('container')
|
|
40
|
+
.find('[class^=rsg--preview]')
|
|
41
|
+
.as('preview');
|
|
42
|
+
|
|
43
|
+
cy.get('@container')
|
|
44
|
+
.find('button')
|
|
45
|
+
.contains('View Code')
|
|
46
|
+
.as('viewCodeBtn');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('renders button as a span', () => {
|
|
50
|
+
//verify button as a span
|
|
51
|
+
cy.get('[data-testid="Button-example-0"]')
|
|
52
|
+
.contains('My button')
|
|
53
|
+
.should('exist');
|
|
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
|
+
cy.get('@container')
|
|
70
|
+
.find('textarea')
|
|
71
|
+
.should('not.exist');
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
describe('Button as a span: Button-example-1', () => {
|
|
76
|
+
beforeEach(() => {
|
|
77
|
+
cy.get('[data-testid="Button-example-1"]')
|
|
78
|
+
.as('container')
|
|
79
|
+
.find('[class^=rsg--preview]')
|
|
80
|
+
.as('preview');
|
|
81
|
+
|
|
82
|
+
cy.get('@container')
|
|
83
|
+
.find('button')
|
|
84
|
+
.contains('View Code')
|
|
85
|
+
.as('viewCodeBtn');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it('renders button as a span', () => {
|
|
89
|
+
//verify button as a span
|
|
90
|
+
cy.get('[data-testid="Button-example-1"]')
|
|
91
|
+
.contains('My button as a span')
|
|
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,53 @@
|
|
|
1
|
+
describe('Button With States component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to Button With States component
|
|
4
|
+
cy.visit('/#button');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="ButtonWithStates-container"]')
|
|
10
|
+
.as('container')
|
|
11
|
+
.find('[class^=rsg--preview]')
|
|
12
|
+
.as('preview');
|
|
13
|
+
|
|
14
|
+
cy.get('@container')
|
|
15
|
+
.find('button')
|
|
16
|
+
.contains('View Code')
|
|
17
|
+
.as('viewCodeBtn');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// button with Disabled and loading
|
|
21
|
+
it('renders button with states', () => {
|
|
22
|
+
cy.get('[data-testid="ButtonWithStates-examples"]')
|
|
23
|
+
.find('h2')
|
|
24
|
+
.contains('Disabled and loading')
|
|
25
|
+
.should('exist');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('renders button as disabled', () => {
|
|
29
|
+
//verify button as a span
|
|
30
|
+
cy.get('[data-testid="ButtonWithStates-example-1"]')
|
|
31
|
+
.contains('Loading')
|
|
32
|
+
.should('be.disabled')
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('has view code button', () => {
|
|
36
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('shows code on click', () => {
|
|
40
|
+
cy.get('@viewCodeBtn').click();
|
|
41
|
+
cy.get('@container')
|
|
42
|
+
.find('textarea')
|
|
43
|
+
.should('exist');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('closes code on click', () => {
|
|
47
|
+
cy.get('@viewCodeBtn').click();
|
|
48
|
+
cy.get('@container')
|
|
49
|
+
.find('textarea')
|
|
50
|
+
.should('not.exist');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
describe('Checkbox component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to checkbox component
|
|
4
|
+
cy.visit('/#checkbox');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="Checkbox-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('Checkbox section', () => {
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
cy.get('[data-preview="Checkbox"]')
|
|
39
|
+
.as('preview');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('should click checkboxes', () => {
|
|
43
|
+
cy.get('[data-preview="Checkbox"] p').contains('List of checkboxes');
|
|
44
|
+
cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(2)')
|
|
45
|
+
.contains('Tennis')
|
|
46
|
+
.click();
|
|
47
|
+
cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(3)')
|
|
48
|
+
.contains('Basketball')
|
|
49
|
+
.click();
|
|
50
|
+
cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(4)')
|
|
51
|
+
.contains('Cycling')
|
|
52
|
+
.click();
|
|
53
|
+
cy.get('[data-testid="Checkbox-example-1"] div > label:nth-child(5)')
|
|
54
|
+
.contains('Football')
|
|
55
|
+
.click();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('has view code button', () => {
|
|
59
|
+
cy.get('[data-testid="Checkbox-examples"] [name="rsg-code-editor"]').should('exist');
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('shows code on click', () => {
|
|
63
|
+
cy.get('[data-testid="Checkbox-examples"] [name="rsg-code-editor"]').contains('View Code')
|
|
64
|
+
.click();
|
|
65
|
+
cy.get('[data-testid="Checkbox-examples"] div > textarea').should('be.visible');
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
describe('Confetti component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to confetti component
|
|
4
|
+
cy.visit('/#confetti');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="Confetti-container"]')
|
|
10
|
+
.as('container')
|
|
11
|
+
.find('[class^=rsg--preview]')
|
|
12
|
+
.as('preview');
|
|
13
|
+
|
|
14
|
+
cy.get('@container')
|
|
15
|
+
.find('button')
|
|
16
|
+
.contains('View Code')
|
|
17
|
+
.as('viewCodeBtn');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('renders button with states', () => {
|
|
21
|
+
cy.get('[data-testid="Confetti-examples"]')
|
|
22
|
+
.find('h1')
|
|
23
|
+
.contains('Confetti')
|
|
24
|
+
.should('exist');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('renders confetti when "trigger confetti" is clicked', () => {
|
|
28
|
+
//verify button as a span
|
|
29
|
+
cy.get('[data-testid="Confetti-example-1"]')
|
|
30
|
+
.contains('trigger confetti')
|
|
31
|
+
.click()
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('has view code button', () => {
|
|
35
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('shows code on click', () => {
|
|
39
|
+
cy.get('@viewCodeBtn').click();
|
|
40
|
+
cy.get('@container')
|
|
41
|
+
.find('textarea')
|
|
42
|
+
.should('exist');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('closes code on click', () => {
|
|
46
|
+
cy.get('@viewCodeBtn').click();
|
|
47
|
+
cy.get('@container')
|
|
48
|
+
.find('textarea')
|
|
49
|
+
.should('not.exist');
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
describe('ErrorText component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to errortext component
|
|
4
|
+
cy.visit('/#errortext');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="ErrorText-container"]')
|
|
10
|
+
.as('container')
|
|
11
|
+
.find('[class^=rsg--preview]')
|
|
12
|
+
.as('preview');
|
|
13
|
+
|
|
14
|
+
cy.get('@container')
|
|
15
|
+
.find('button')
|
|
16
|
+
.contains('View Code')
|
|
17
|
+
.as('viewCodeBtn');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('error message should exist', () => {
|
|
21
|
+
cy.get('[data-testid="ErrorText-examples"]')
|
|
22
|
+
.find('h1')
|
|
23
|
+
.contains('ErrorText')
|
|
24
|
+
.should('exist');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('displays error message', () => {
|
|
28
|
+
cy.get('[data-testid="ErrorText-example-1"] span')
|
|
29
|
+
.contains('This is an error')
|
|
30
|
+
.should('exist');
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('has view code button', () => {
|
|
34
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('shows code on click', () => {
|
|
38
|
+
cy.get('@viewCodeBtn').click();
|
|
39
|
+
cy.get('@container')
|
|
40
|
+
.find('textarea')
|
|
41
|
+
.should('exist');
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('closes code on click', () => {
|
|
45
|
+
cy.get('@viewCodeBtn').click();
|
|
46
|
+
cy.get('@container')
|
|
47
|
+
.find('textarea')
|
|
48
|
+
.should('not.exist');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
describe('Label component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to label component
|
|
4
|
+
cy.visit('/#label');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="Label-container"]')
|
|
10
|
+
.as('container')
|
|
11
|
+
.find('[class^=rsg--preview]')
|
|
12
|
+
.as('preview');
|
|
13
|
+
|
|
14
|
+
cy.get('@container')
|
|
15
|
+
.find('button')
|
|
16
|
+
.contains('View Code')
|
|
17
|
+
.as('viewCodeBtn');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('label should exist', () => {
|
|
21
|
+
cy.get('[data-testid="Label-examples"]')
|
|
22
|
+
.find('label')
|
|
23
|
+
.should('exist');
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
describe('Wrapping a basic text input: Label-example-0', () => {
|
|
28
|
+
beforeEach(() => {
|
|
29
|
+
cy.get('[data-testid="Label-example-0"')
|
|
30
|
+
.as('container')
|
|
31
|
+
.find('[class^=rsg--preview]')
|
|
32
|
+
.as('preview');
|
|
33
|
+
|
|
34
|
+
cy.get('@container')
|
|
35
|
+
.find('button')
|
|
36
|
+
.contains('View Code')
|
|
37
|
+
.as('viewCodeBtn');
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('renders label Wrapping a basic text input', () => {
|
|
41
|
+
cy.get('[data-testid="Label-example-0"]')
|
|
42
|
+
.find('label')
|
|
43
|
+
.contains('Wrapping a basic text input')
|
|
44
|
+
.should('exist');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('has view code button', () => {
|
|
48
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('shows code on click', () => {
|
|
52
|
+
cy.get('@viewCodeBtn').click();
|
|
53
|
+
cy.get('@container')
|
|
54
|
+
.find('textarea')
|
|
55
|
+
.should('exist');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('closes code on click', () => {
|
|
59
|
+
cy.get('@viewCodeBtn').click();
|
|
60
|
+
cy.get('@container')
|
|
61
|
+
.find('textarea')
|
|
62
|
+
.should('not.exist');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe('Wrapping a styled input: Label-example-1', () => {
|
|
67
|
+
beforeEach(() => {
|
|
68
|
+
cy.get('[data-testid="Label-example-1"]')
|
|
69
|
+
.as('container')
|
|
70
|
+
.find('[class^=rsg--preview]')
|
|
71
|
+
.as('preview');
|
|
72
|
+
|
|
73
|
+
cy.get('@container')
|
|
74
|
+
.find('button')
|
|
75
|
+
.contains('View Code')
|
|
76
|
+
.as('viewCodeBtn');
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('renders label wrapping a styled input', () => {
|
|
80
|
+
cy.get('[data-testid="Label-example-1"]')
|
|
81
|
+
.find('label')
|
|
82
|
+
.contains('Wrapping a styled input')
|
|
83
|
+
.should('exist');
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('has view code button', () => {
|
|
87
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('shows code on click', () => {
|
|
91
|
+
cy.get('@viewCodeBtn').click();
|
|
92
|
+
cy.get('@container')
|
|
93
|
+
.find('textarea')
|
|
94
|
+
.should('exist');
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('closes code on click', () => {
|
|
98
|
+
cy.get('@viewCodeBtn').click();
|
|
99
|
+
cy.get('@container')
|
|
100
|
+
.find('textarea')
|
|
101
|
+
.should('not.exist');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
describe('Link component', () => {
|
|
2
|
+
before(() => {
|
|
3
|
+
// go to link component
|
|
4
|
+
cy.visit('/#link');
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
describe('props and methods section', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
cy.get('[data-testid="Link-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('Link standard preview section', () => {
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
cy.get('[data-testid="Link-example-0"]')
|
|
39
|
+
.as('container')
|
|
40
|
+
.find('[data-preview="Link"]')
|
|
41
|
+
.as('preview');
|
|
42
|
+
|
|
43
|
+
cy.get('@container')
|
|
44
|
+
.find('button')
|
|
45
|
+
.contains('View Code')
|
|
46
|
+
.as('viewCodeBtn');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('renders link standard section', () => {
|
|
50
|
+
cy.get('[data-testid="Link-example-0"]')
|
|
51
|
+
.should('exist');
|
|
52
|
+
|
|
53
|
+
cy.get('[data-testid="Link-example-0"]')
|
|
54
|
+
.first()
|
|
55
|
+
.contains('Link standard')
|
|
56
|
+
.should('exist');
|
|
57
|
+
cy.get('[data-testid="Link-example-0"] div > div:nth-child(2) > a')
|
|
58
|
+
.contains('Link standard icon')
|
|
59
|
+
.should('exist');
|
|
60
|
+
cy.get('[data-testid="Link-example-0"] div > div:nth-child(2) > a > span > svg')
|
|
61
|
+
.should('exist');
|
|
62
|
+
cy.get('[data-testid="Link-example-0"] div > div:nth-child(3) > a')
|
|
63
|
+
.contains('Link standard white')
|
|
64
|
+
.should('exist')
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it('has view code button', () => {
|
|
68
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('shows code on click', () => {
|
|
72
|
+
cy.get('@viewCodeBtn').click();
|
|
73
|
+
cy.get('@container')
|
|
74
|
+
.find('textarea')
|
|
75
|
+
.should('exist');
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('closes code on click', () => {
|
|
79
|
+
cy.get('@viewCodeBtn').click();
|
|
80
|
+
cy.get('@container')
|
|
81
|
+
.find('textarea')
|
|
82
|
+
.should('not.exist');
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
describe('Iconography section', () => {
|
|
87
|
+
beforeEach(() => {
|
|
88
|
+
cy.get('[data-testid="Link-example-2"]')
|
|
89
|
+
.as('container')
|
|
90
|
+
.find('[data-preview="Link"]')
|
|
91
|
+
.as('preview');
|
|
92
|
+
|
|
93
|
+
cy.get('@container')
|
|
94
|
+
.find('button')
|
|
95
|
+
.contains('View Code')
|
|
96
|
+
.as('viewCodeBtn');
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it('renders link Iconography section', () => {
|
|
100
|
+
cy.get('[data-testid="Link-example-2"]')
|
|
101
|
+
.should('exist');
|
|
102
|
+
|
|
103
|
+
cy.get('[data-testid="Link-example-2"]')
|
|
104
|
+
.first()
|
|
105
|
+
.contains('Internal link')
|
|
106
|
+
.should('exist');
|
|
107
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(2) > a')
|
|
108
|
+
.contains('External link')
|
|
109
|
+
.should('exist');
|
|
110
|
+
//check icon exist
|
|
111
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(2) > a > span > svg')
|
|
112
|
+
.should('exist');
|
|
113
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(3) > a')
|
|
114
|
+
.contains('Download link')
|
|
115
|
+
.should('exist');
|
|
116
|
+
//check icon exist
|
|
117
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(3) > a > span > svg')
|
|
118
|
+
.should('exist');
|
|
119
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(4) > a')
|
|
120
|
+
.contains('Favourite link')
|
|
121
|
+
.should('exist');
|
|
122
|
+
//check icon exist
|
|
123
|
+
cy.get('[data-testid="Link-example-2"] div > div:nth-child(4) > a > span > svg')
|
|
124
|
+
.should('exist');
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('has view code button', () => {
|
|
128
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
it('shows code on click', () => {
|
|
132
|
+
cy.get('@viewCodeBtn').click();
|
|
133
|
+
cy.get('@container')
|
|
134
|
+
.find('textarea')
|
|
135
|
+
.should('exist');
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('closes code on click', () => {
|
|
139
|
+
cy.get('@viewCodeBtn').click();
|
|
140
|
+
cy.get('@container')
|
|
141
|
+
.find('textarea')
|
|
142
|
+
.should('not.exist');
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
describe('Link as button section', () => {
|
|
147
|
+
beforeEach(() => {
|
|
148
|
+
cy.get('[data-testid="Link-example-3"]')
|
|
149
|
+
.as('container')
|
|
150
|
+
.find('[data-preview="Link"]')
|
|
151
|
+
.as('preview');
|
|
152
|
+
|
|
153
|
+
cy.get('@container')
|
|
154
|
+
.find('button')
|
|
155
|
+
.contains('View Code')
|
|
156
|
+
.as('viewCodeBtn');
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it('renders link as buttons section', () => {
|
|
160
|
+
cy.get('[data-testid="Link-example-3"]')
|
|
161
|
+
.should('exist');
|
|
162
|
+
|
|
163
|
+
//verify all button colors
|
|
164
|
+
cy.get('[data-testid="Link-example-3"] div > div:nth-child(1) > a[color="black"]')
|
|
165
|
+
.contains('Link as button')
|
|
166
|
+
.should('exist');
|
|
167
|
+
cy.get('[data-testid="Link-example-3"] div > div:nth-child(2) > a[color="red"]')
|
|
168
|
+
.contains('Link as button')
|
|
169
|
+
.and('exist');
|
|
170
|
+
cy.get('[data-testid="Link-example-3"] div > div:nth-child(3) > a[color="yellow"]')
|
|
171
|
+
.should('exist');
|
|
172
|
+
cy.get('[data-testid="Link-example-3"] div > div:nth-child(4) > a[color="yellow_light"]')
|
|
173
|
+
.contains('Link as button')
|
|
174
|
+
.should('exist');
|
|
175
|
+
cy.get('[data-testid="Link-example-3"] div > div:nth-child(5) > a[color="yellow_dark"]')
|
|
176
|
+
.contains('Link as button')
|
|
177
|
+
.should('exist');
|
|
178
|
+
cy.get('[data-testid="Link-example-3"] div:nth-child(6) > div:nth-child(1) > a[color="grey"] ')
|
|
179
|
+
.contains('Link as button')
|
|
180
|
+
.should('exist');
|
|
181
|
+
cy.get('[data-testid="Link-example-3"] div > div > div:nth-child(6) > a[color="transparent"]')
|
|
182
|
+
.contains('Link as transparent button')
|
|
183
|
+
.should('exist');
|
|
184
|
+
cy.get('[data-testid="Link-example-3"] div:nth-child(3) > a[color="white"]')
|
|
185
|
+
.contains('White button')
|
|
186
|
+
.should('exist');
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
it('has view code button', () => {
|
|
190
|
+
cy.get('@viewCodeBtn').should('exist');
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
it('shows code on click', () => {
|
|
194
|
+
cy.get('@viewCodeBtn').click();
|
|
195
|
+
cy.get('@container')
|
|
196
|
+
.find('textarea')
|
|
197
|
+
.should('exist');
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
it('closes code on click', () => {
|
|
201
|
+
cy.get('@viewCodeBtn').click();
|
|
202
|
+
cy.get('@container')
|
|
203
|
+
.find('textarea')
|
|
204
|
+
.should('not.exist');
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
});
|