@@ -12,7 +12,7 @@ describe("'New card' button", () => {
1212 test ( "changes the words on the card" , ( ) => {
1313 render (
1414 < BrowserRouter >
15- < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } />
15+ < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } randomise = { true } />
1616 </ BrowserRouter > ,
1717 ) ;
1818 const initialCells = screen . queryAllByRole ( "gridcell" ) ;
@@ -29,7 +29,7 @@ describe("'New card' button", () => {
2929 test ( "clears any stamped cells" , ( ) => {
3030 render (
3131 < BrowserRouter >
32- < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } />
32+ < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } randomise = { true } />
3333 </ BrowserRouter > ,
3434 ) ;
3535 const cells = screen . queryAllByRole ( "gridcell" ) ;
@@ -48,7 +48,7 @@ describe("'Clear' button", () => {
4848 test ( "clears any stamped cells" , ( ) => {
4949 render (
5050 < BrowserRouter >
51- < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } />
51+ < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } randomise = { true } />
5252 </ BrowserRouter > ,
5353 ) ;
5454 const cells = screen . queryAllByRole ( "gridcell" ) ;
@@ -70,13 +70,47 @@ describe("'Clear' button", () => {
7070
7171describe ( "'Share' button" , ( ) => {
7272 test ( "copies a representation of the card to the clipboard" , async ( ) => {
73+ const coordinates = [
74+ "A1" ,
75+ "A 2" , // non-breaking space
76+ "A­3" , // soft hyphen (only displays if the text wraps)
77+ "A­­4" , // multiple hyphens
78+ "B1" ,
79+ "A5" , // out of alphabetical order
80+ "B2" ,
81+ "B3" ,
82+ "B4" ,
83+ "B5" ,
84+ "C1" ,
85+ "C2" ,
86+ "C3" ,
87+ "C4" ,
88+ "C5" ,
89+ "D1" ,
90+ "D2" ,
91+ "D3" ,
92+ "D4" ,
93+ "D5" ,
94+ "E1" ,
95+ "E2" ,
96+ "E3" ,
97+ "E4" ,
98+ "E5" ,
99+ ] ;
73100 const user = userEvent . setup ( ) ;
74101 render (
75102 < BrowserRouter >
76- < Card wordList = { wordList } name = { "" } url = { "" } id = { "" } />
103+ < Card
104+ wordList = { coordinates }
105+ name = { "" }
106+ url = { "" }
107+ id = { "" }
108+ randomise = { false }
109+ />
77110 < textarea rows = { 5 } />
78111 </ BrowserRouter > ,
79112 ) ;
113+ fireEvent . click ( screen . getByText ( "New card" ) ) ;
80114 const cells = screen . queryAllByRole ( "gridcell" ) ;
81115 const firstCell = cells [ 0 ] ;
82116 const lastCell = cells [ 24 ] ;
@@ -94,12 +128,36 @@ describe("'Share' button", () => {
94128 await user . click ( textBox ) ;
95129 await user . paste ( ) ;
96130
97- const emojiGrid = `
131+ const message = `
98132 🟦⬜⬜⬜⬜
99133 ⬜⬜⬜⬜⬜
100134 ⬜⬜⬜⬜⬜
101135 ⬜⬜⬜⬜⬜
102- ⬜⬜⬜⬜🟦` ;
103- expect ( textBox ) . toHaveValue ( stripIndent ( emojiGrid ) . trim ( ) ) ;
136+ ⬜⬜⬜⬜🟦
137+ Remaining:
138+ - A 2
139+ - A3
140+ - A4
141+ - A5
142+ - B1
143+ - B2
144+ - B3
145+ - B4
146+ - B5
147+ - C1
148+ - C2
149+ - C3
150+ - C4
151+ - C5
152+ - D1
153+ - D2
154+ - D3
155+ - D4
156+ - D5
157+ - E1
158+ - E2
159+ - E3
160+ - E4` ;
161+ expect ( textBox ) . toHaveValue ( stripIndent ( message ) . trim ( ) ) ;
104162 } ) ;
105163} ) ;
0 commit comments