From f66d821bb66a31d44ebeaee8b8bbfd103b469e5c Mon Sep 17 00:00:00 2001 From: iqra-javed <35740252+iqra-javed@users.noreply.github.com> Date: Tue, 29 Dec 2020 09:10:04 -0600 Subject: [PATCH] WIP: write cypress tests for several components --- ...ion renders with a theme provider #0.png | Bin 0 -> 40656 bytes ...enders with a theme provider #0.actual.png | Bin 0 -> 1363 bytes ... renders with a theme provider #0.diff.png | Bin 0 -> 524 bytes ...ckbox shows checkbox when checked #0.png | Bin 0 -> 384 bytes ...box renders with a theme provider #0.png | Bin 0 -> 591 bytes cypress/components/accordion.spec.tsx | 86 ++++++++++ cypress/components/alert.spec.tsx | 151 ++++++++++++++++++ cypress/components/box.spec.tsx | 50 ++++++ cypress/components/checkbox.spec.tsx | 123 ++++++++++++++ cypress/components/combobox.spec.tsx | 123 ++++++++++++++ cypress/components/input.spec.tsx | 112 +++++++++++++ 11 files changed, 645 insertions(+) create mode 100644 cypress/components/__image_snapshots__/Accordion renders with a theme provider #0.png create mode 100644 cypress/components/__image_snapshots__/Button renders with a theme provider #0.actual.png create mode 100644 cypress/components/__image_snapshots__/Button renders with a theme provider #0.diff.png create mode 100644 cypress/components/__image_snapshots__/Checkbox shows checkbox when checked #0.png create mode 100644 cypress/components/__image_snapshots__/Combobox renders with a theme provider #0.png create mode 100644 cypress/components/accordion.spec.tsx create mode 100644 cypress/components/alert.spec.tsx create mode 100644 cypress/components/box.spec.tsx create mode 100644 cypress/components/checkbox.spec.tsx create mode 100644 cypress/components/combobox.spec.tsx create mode 100644 cypress/components/input.spec.tsx diff --git a/cypress/components/__image_snapshots__/Accordion renders with a theme provider #0.png b/cypress/components/__image_snapshots__/Accordion renders with a theme provider #0.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8f30f9aeafa2c67984400876859b90966ab31e GIT binary patch literal 40656 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

Q*opV}|ky0P(CbW0S91}DP96X)`Iz#rlc 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 QkND?%{V953y7M>v7osy)2mk;8 literal 0 HcmV?d00001 diff --git a/cypress/components/__image_snapshots__/Button renders with a theme provider #0.actual.png b/cypress/components/__image_snapshots__/Button renders with a theme provider #0.actual.png new file mode 100644 index 0000000000000000000000000000000000000000..7efddb49c305b7407e461dcb08a21aff71b7ab3e GIT binary patch literal 1363 zcmV-Z1+4msP)K5p^^eoyzJHq$DL` zx2p)BKR|WuDKds9<8<^xQDpi$MUjbc_9HVbnX1|o`1}FHnT95YB*tUu-H?P>&NMV3 z+S=N&D+-q0_0u%kyzK}**omUZSbC?b3cB8jz+#HPVv4|Giojxuz+#HPVv4|GicA=E zcXxBR@+dvYszPEyJesQVe;^YEKA)f2`33Z5-rU(NT<{=fY}))0H)Lm!la-EP)8>!3 zAv=SdtaPq4nJ{{?U;z)@JA>}7ZkpY0mc6`|cei}Vq+7=^%r%t%Qdm@i%_hjnO2<%G zRD#VW$jM6QN|OmANsmPFq_$hWQ0cnQ>PhcjisRaPap-ta@!D zZ?0LvbIVuZ^Z6;>`UQbtkY9g0gwN-vcu`}O;=Ypr|TNn zSXjh>0aufim5!nOr-O_iJBARCr;Un=N_4%G+zI2@f1sSSR2L&N(uf&2fc*!`NlSGx zG9wM2-_QN?7U6L8e(b#m34R624xfVAomoKHMxtZ_x{YY8)&*aaUMcGdW*|uXh zuA$fSz`ZlLSTbQ$TvAGLNhv)|pLz#f!A?*G|7Pa&$*f+tk?hP7j2)egVfDI=WM__G z?C5Mh`|>NAn_GC})t4Ba>cSvN66@dE!s3Ms2zmY06^zQsWd5A{n0ik>RYz+G2bnO+ zpEHZQr%%Sv;%?=;eFxZ7_yL(ChBI?o9v7qPNDX$o#;}y3gk)!=VK{!`Bq3Q@>4aQ6 zI39Pahj5SyqpPAKiHnWF5EmOmTB?g5ek|jwz27i%S{@f_^>{I>)!RmN^gx6VgmiXw zVGu$PA`3x?BqYK`a0vywx~Q)|OGJbdgWayt-rhk-b?tG?8XOzTsZ(cgyFG;bQBjFu zaC|J6noJl~9Ij&L-tRD+I$g)dpKhbMxrHgWPsHF#PGZ~6J!Gb*63~NeDf*b6R8^y@ zrj{0WD_36?g{o>))zs4BZsqpdZl>`45;nY3M8P8uQQz3e*3WlvRlx&$omOOG#$YWAn(JFb>1~xwCkD$%_;`^#YNRkxaWQk8L}4BMJUCbxJP9C8bD6 ztX#g7sZ(+(E-6JqV&(FsJpJUOtX{i;t)<&BxRR4t_Usc}4pP}Khq_0NOyzRXb)D07 z4J0PSBZS~WUT+7oV#BU!7`)yNWW|PE(=d3w9aJAXPV~S5#K*=UNfMV@`N6};TxN=* za9v^o|HSEZ(38{YpeLu(!N~OCTy6r3DFTZr0*fgEizxz&DFTZr0*fg^k!|RD5KHd@ z0UbrLA)+Gs VzynI>Ho5=+002ovPDHLkV1ivMmxKTS literal 0 HcmV?d00001 diff --git a/cypress/components/__image_snapshots__/Button renders with a theme provider #0.diff.png b/cypress/components/__image_snapshots__/Button renders with a theme provider #0.diff.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7b71b2eea5406e4d1af676ab82ce8256c651bd GIT binary patch literal 524 zcmV+n0`vWeP)-$s8}<@= z(==(f()h@_tz;rdXbp*j)?~Gp1f_A17{GOT79 zRbqwG-5j#ZeJozuvmI*r0y3;U~Je`Q+;A8bSR~ zP~Tl_Hq>unSX%4JRpOv_;;0_QiP(wff+Aj4#Ovz68kUwg5l8i0yy@oVldG$1#EGDe z;#4hS_zi3y9!zIvzH3SBU0q*$rgn-rh@E(*C9$MoNp&igQ`)V>PHBjv(r(4_hQ-xU zEG>z*Bymv0VuoMn_VzCufB1KTBHq)mxHwV&5PO@AmnB{l)J`14qn5QU{~ zqc{l4moJ}P_D_>D>QPWfK^?_Wy{#5AETYs5)mA#$yS%(aJ=18nk|5MKbz*Hz-1I#o{+?`BxdGOT79RTZsi*7t#2Lq*IgXHoH zwHjTiRxGZsYUFR<*-iOyjQNur&rhF#q8If#yj2=V?xqF^{kYG4Al0fxzba)5p$AIA z=FTW~LYI_4`qW^3kkICQ=l2{nV5BQK5yazluz%nu6n3J!6`j&_MJViK eFXhAIb?^<jzu0000_8o0006ONklA&Q+KPr80u7WBH17~x;+2+x-zR!~jFDu_6n!fzE0oJ+K67|@NGg@$Cz{PB6B83; zG8y*w_h~d5SeAuh7)(x1qUh^(yV$n2w$L<Wa@OhIDy(NjjY-m&cEqtgWq)OeWdh-sauT z&JNGd&m12g(`vPd$K%A~adcfLo6Ta|-QC5qEEGd}dU~Q-t+KJPL8H+i91ipH@v)RPf>2xTSN*IPgC=?xl1W-6k|C#2a&CN}Yj*fWecDt!m zDww9pkLaV0*}YT{QNwpr>9I!O|iJR z$ll%_U-9{T*b0RLb8~Yj`lOT$B81?7^7%ZmSd4>%18nQ->jZ;A>h(G{Ap|xd1h%E6 zCBoq_#bS|OuZQUMF``bV!|m-YGcz-Iy literal 0 HcmV?d00001 diff --git a/cypress/components/accordion.spec.tsx b/cypress/components/accordion.spec.tsx new file mode 100644 index 00000000..42e8df93 --- /dev/null +++ b/cypress/components/accordion.spec.tsx @@ -0,0 +1,86 @@ +/// + +import React from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + ThemeProvider, + GlobalStyles, + defaultTheme, + Accordion, + AccordionButton, + AccordionItem, + AccordionPanel, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` + html { + font-family: Helvetica; + } +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +export const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +const ExampleAccordion = () => { + return ( + + + Section 1 title + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad + minim veniam, quis nostrud exercitation ullamco laboris nisi ut + aliquip ex ea commodo consequat. + + + + Section 2 title + + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad + minim veniam, quis nostrud exercitation ullamco laboris nisi ut + aliquip ex ea commodo consequat. + + + + ); +}; + +describe('', () => { + it('renders with a theme provider', () => { + mount( + + + + ); + cy.get('[data-reach-accordion]').toMatchImageSnapshot(); + }); + + it('should display content', () => { + const text = 'Section 1 title'; + mount( + + + + ); + cy.contains(text).should('be.visible'); + }); +}); diff --git a/cypress/components/alert.spec.tsx b/cypress/components/alert.spec.tsx new file mode 100644 index 00000000..d8b92bbc --- /dev/null +++ b/cypress/components/alert.spec.tsx @@ -0,0 +1,151 @@ +import React, { useState } from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + Alert, + ThemeProvider, + GlobalStyles, + defaultTheme, + Button, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` +html { + font-family: Helvetica; +} +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +const ExampleCloseableAlert = () => { + const [open, setOpen] = useState(false); + + const title = 'Hello'; + const description = 'World'; + const closeText = 'Dismiss'; + return ( + <> + + {open && ( + + {description} + + + )} + + ); +}; + +describe('', () => { + it('renders with a theme provider', () => { + const title = 'Test'; + mount( + + + + ); + + cy.contains(title).should('be.visible'); + }); + + it('should display content', () => { + const description = 'Hello World'; + mount( + + {description} + + ); + + cy.get('div[role="alert"]').should('contain', description); + }); + + it('should add title content when `title` prop is passed', () => { + const title = 'Hello'; + const description = 'World'; + cy.get('div[role="alert"]').as('alert'); + mount( + + {description} + + ); + + cy.get('@alert').should('contain', title); + cy.get('@alert').should('contain', description); + }); + + it('should add predefined styles when `status` prop is passed', () => { + const backgroundColor = 'rgb(248, 180, 180)'; + mount( + + error + + ); + + cy.get('div[role="alert"]').should( + 'have.css', + 'background-color', + backgroundColor + ); + }); + + it('should add styles when `bg` prop is passed', () => { + const backgroundColor = 'rgb(253, 246, 178)'; + mount( + + Custom color + + ); + cy.get('div[role="alert"]').should( + 'have.css', + 'background-color', + backgroundColor + ); + }); + + it('should add close button text and be closeable', () => { + const title = 'Hello'; + const description = 'World'; + const closeText = 'Dismiss'; + cy.get('div[role="alert"]').as('alert'); + mount( + + + + ); + + cy.get('button[data-testid="open-alert-button"]').click(); + cy.get('@alert').should('contain', title); + cy.get('@alert').should('contain', description); + cy.get('@alert').should('contain', closeText); + cy.get('button[data-testid="close-alert-button"]').click(); + cy.get('@alert').should('not.exist'); + }); +}); diff --git a/cypress/components/box.spec.tsx b/cypress/components/box.spec.tsx new file mode 100644 index 00000000..b2e9ffab --- /dev/null +++ b/cypress/components/box.spec.tsx @@ -0,0 +1,50 @@ +/// + +import React from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + Box, + ThemeProvider, + GlobalStyles, + defaultTheme, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` + html { + font-family: Helvetica; + } +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +describe('', () => { + it('renders with a theme provider', () => { + const text = 'Text Box'; + mount( + + {text} + + ); + + cy.contains(text).should('be.visible'); + }); +}); diff --git a/cypress/components/checkbox.spec.tsx b/cypress/components/checkbox.spec.tsx new file mode 100644 index 00000000..5b4dce4e --- /dev/null +++ b/cypress/components/checkbox.spec.tsx @@ -0,0 +1,123 @@ +/// + +import React from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + ThemeProvider, + GlobalStyles, + defaultTheme, + Checkbox, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` + html { + font-family: Helvetica; + } +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +describe('', () => { + it('renders with a theme provider', () => { + mount( + + + + ); + }); + + it('shows white background when not checked', () => { + const labelText = 'Checked Checkbox'; + mount( + + {labelText} + + ); + + cy.get('input[type="checkbox"]').should( + 'have.css', + 'background-color', + 'rgb(255, 255, 255)' + ); + }); + + it('shows checkbox when checked', () => { + const labelText = 'Checked Checkbox'; + cy.get('input[type="checkbox"]').as('checkbox'); + mount( + + {labelText} + + ); + // expect(checkbox).toMatchSnapshot('Unchecked Checkbox'); + + cy.get('input[type="checkbox"]').should( + 'have.css', + 'background-color', + 'rgb(255, 255, 255)' + ); + + cy.get('@checkbox').click(); + + // expect(checkbox).toMatchSnapshot('Checked Checkbox'); + + cy.get('@checkbox').should('have.attr', 'aria-checked', 'true'); + + cy.get('@checkbox').toMatchImageSnapshot(); + }); + + it('can have checked state changed by theme', () => { + const labelText = 'Checked Checkbox'; + cy.get('input[type="checkbox"]').as('checkbox'); + + const backgroundColor = 'rgb(51, 51, 51)'; + const checkedColor = 'rgb(195, 51, 51)'; + + const customTheme = { + ...defaultTheme, + Checkbox: { + backgroundColor: backgroundColor, + _checked: { + backgroundColor: checkedColor, + }, + }, + }; + + mount( + + {labelText} + + ); + + // expect(checkbox).toMatchSnapshot('Unchecked Checkbox'); + + cy.get('@checkbox').should('have.css', 'background-color', backgroundColor); + + cy.get('@checkbox').click(); + + // expect(checkbox).toMatchSnapshot('Checked Checkbox'); + + cy.get('@checkbox').should('have.css', 'background-color', checkedColor); + + cy.get('@checkbox').should('have.attr', 'aria-checked', 'true'); + }); +}); diff --git a/cypress/components/combobox.spec.tsx b/cypress/components/combobox.spec.tsx new file mode 100644 index 00000000..cab151d0 --- /dev/null +++ b/cypress/components/combobox.spec.tsx @@ -0,0 +1,123 @@ +/// + +import React, { useState } from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + ThemeProvider, + GlobalStyles, + defaultTheme, + Combobox, + ComboboxInput, + ComboboxPopover, + ComboboxList, + ComboboxOption, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` + html { + font-family: Helvetica; + } +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +const inputLabel = 'Fruit'; + +const ExampleCombobox = ({ value }) => { + const [search, setSearch] = useState(value); + const items = ['apple', 'banana', 'kiwi', 'orange']; + return ( + + ); +}; + +describe('', () => { + it('renders with a theme provider', () => { + const content = 'Hello'; + mount( + + + + ); + const combobox = cy.get('label'); + combobox.toMatchImageSnapshot(); + }); + + it('should show value', () => { + cy.get('input[role="combobox"]').as('input'); + const content = 'Hello'; + mount( + + + + ); + cy.get('@input').should('have.value', 'Hello'); + }); + + it('should show updated value', () => { + cy.get('input[role="combobox"]').as('input'); + const updatedValue = 'Input updated!'; + mount( + + + + ); + cy.get('@input').type(updatedValue); + cy.get('@input').should('have.value', updatedValue); + }); + + it('should show option list when typing if openOnFocus is set to true', () => { + cy.get('input[role="combobox"]').as('input'); + cy.get('div[data-testid="combobox-popover"]').as('option'); + const option = 'apple'; + mount( + + + + ); + + cy.get('@input').click(); + cy.get('@option').should('be.visible'); + cy.get('@option').should('contain', option); + }); +}); diff --git a/cypress/components/input.spec.tsx b/cypress/components/input.spec.tsx new file mode 100644 index 00000000..e8476b09 --- /dev/null +++ b/cypress/components/input.spec.tsx @@ -0,0 +1,112 @@ +/// + +import React, { useState } from 'react'; +import { mount } from 'cypress-react-unit-test'; +import { + Input, + ThemeProvider, + GlobalStyles, + defaultTheme, +} from '../../dist/minerva-ui.esm'; +import { createGlobalStyle } from 'styled-components'; + +// by default, we are using the native font stack +// but this font is different on macOS, Linux and Windows +// to make sure our screenshots are consistent, we force them all to use the same font family +const StandardizeFont = createGlobalStyle` + html { + font-family: Helvetica; + } +`; + +const customTheme = { + ...defaultTheme, + fonts: { + ...defaultTheme.fonts, + body: 'Helvetica', + heading: 'Helvetica', + }, +}; + +export const MinervaProvider = ({ children, theme = customTheme }) => ( + + + + {children} + +); + +const inputLabel = 'Name'; + +const ExampleInput = props => { + const [state, setState] = useState(''); + return ( + + + + ); +}; + +describe('', () => { + const inputType = 'email'; + it('renders with a theme provider', () => { + mount( + + + + ); + + cy.get('input[placeholder="Placeholder Text"]').should('exist'); + }); + + it('should be correct type', () => { + mount( + + + + ); + cy.get(`input[type=${inputType}]`).should('exist'); + }); + + it('should show value', () => { + const content = 'Hello'; + mount( + + + + ); + + cy.get('input').should('have.value', content); + }); + + it('should show updated value', () => { + cy.get('input').as('input'); + mount( + + + + ); + cy.get('@input').should('have.value', ''); + + const updatedValue = 'Input updated!'; + cy.get('@input').type(updatedValue); + cy.get('@input').should('have.value', updatedValue); + }); + + it('should be disabled when disabled prop is passed to it', () => { + mount( + + + + ); + cy.get(`input[type=${inputType}]`).should('be.disabled'); + }); +});