Skip to content

Commit d9c7ed2

Browse files
authored
feat(labware-creator): use "tube" not "well" for x/y errors (#8150)
Closes #8142 allows LC to have dynamic error labels via getLabel
1 parent 3f25b5d commit d9c7ed2

27 files changed

+198
-88
lines changed

labware-library/cypress/integration/labware-creator/reservoir.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,9 @@ context('Reservoirs', () => {
212212
cy.contains('close').click({ force: true })
213213

214214
// Brand info
215-
cy.contains('Brand is required').should('exist')
215+
cy.contains('Brand is a required field').should('exist')
216216
cy.get("input[name='brand']").type('TestPro')
217-
cy.contains('Brand is required').should('not.exist')
217+
cy.contains('Brand is a required field').should('not.exist')
218218
cy.get("input[name='brandId']").type('001')
219219

220220
// File info
@@ -226,7 +226,7 @@ context('Reservoirs', () => {
226226
)
227227

228228
// Test pipette
229-
cy.contains('Test Pipette is required').should('exist')
229+
cy.contains('Test Pipette is a required field').should('exist')
230230
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
231231
cy.get('label')
232232
.contains('Test Pipette')
@@ -236,7 +236,7 @@ context('Reservoirs', () => {
236236
cy.get('*[class^="Dropdown__option_label"]')
237237
.contains(/P10.*Single-Channel.*GEN1/)
238238
.click()
239-
cy.contains('Test Pipette is required').should('not.exist')
239+
cy.contains('Test Pipette is a required field').should('not.exist')
240240

241241
// All fields present
242242
cy.get('button[class*="_export_button_"]').click({ force: true })

labware-library/cypress/integration/labware-creator/tipRack.spec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ describe('Create a Tip Rack', () => {
5959
// verify that fit is required
6060
cy.get('#HandPlacedTipFit input').first().click()
6161
cy.get('#HandPlacedTipFit p').first().click()
62-
cy.get('#HandPlacedTipFit span').contains('Fit is required').should('exist')
62+
cy.get('#HandPlacedTipFit span')
63+
.contains('Fit is a required field')
64+
.should('exist')
6365

6466
// verify that loose option is selected
6567
cy.get('#HandPlacedTipFit input')

labware-library/cypress/integration/labware-creator/tubesBlock.spec.js

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,13 @@ context('Tubes and Block', () => {
109109
cy.get("input[name='wellXDimension']").should('exist')
110110
cy.get("input[name='wellYDimension']").should('exist')
111111
cy.get("input[name='wellXDimension']").focus().blur()
112-
cy.contains('Well X is a required field').should('exist')
112+
cy.contains('Tube X is a required field').should('exist')
113113
cy.get("input[name='wellXDimension']").type('10').blur()
114-
cy.contains('Well X is a required field').should('not.exist')
114+
cy.contains('Tube X is a required field').should('not.exist')
115115
cy.get("input[name='wellYDimension']").focus().blur()
116-
cy.contains('Well Y is a required field').should('exist')
116+
cy.contains('Tube Y is a required field').should('exist')
117117
cy.get("input[name='wellYDimension']").type('10').blur()
118-
cy.contains('Well Y is a required field').should('not.exist')
118+
cy.contains('Tube Y is a required field').should('not.exist')
119119
})
120120

121121
it('tests well bottom shape and depth', () => {
@@ -158,9 +158,9 @@ context('Tubes and Block', () => {
158158
cy.contains('close').click({ force: true })
159159

160160
// Brand info
161-
cy.contains('Brand is required').should('exist')
161+
cy.contains('Brand is a required field').should('exist')
162162
cy.get("input[name='brand']").type('TestPro')
163-
cy.contains('Brand is required').should('not.exist')
163+
cy.contains('Brand is a required field').should('not.exist')
164164
cy.get("input[name='brandId']").type('001')
165165

166166
// File info
@@ -172,7 +172,7 @@ context('Tubes and Block', () => {
172172
)
173173

174174
// Test pipette
175-
cy.contains('Test Pipette is required').should('exist')
175+
cy.contains('Test Pipette is a required field').should('exist')
176176
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
177177
cy.get('label')
178178
.contains('Test Pipette')
@@ -182,7 +182,7 @@ context('Tubes and Block', () => {
182182
cy.get('*[class^="Dropdown__option_label"]')
183183
.contains(/P10.*Single-Channel.*GEN1/)
184184
.click()
185-
cy.contains('Test Pipette is required').should('not.exist')
185+
cy.contains('Test Pipette is a required field').should('not.exist')
186186

187187
// All fields present
188188
cy.get('button[class*="_export_button_"]').click({ force: true })
@@ -298,13 +298,13 @@ context('Tubes and Block', () => {
298298
cy.get("input[name='wellXDimension']").should('exist')
299299
cy.get("input[name='wellYDimension']").should('exist')
300300
cy.get("input[name='wellXDimension']").focus().blur()
301-
cy.contains('Well X is a required field').should('exist')
301+
cy.contains('Tube X is a required field').should('exist')
302302
cy.get("input[name='wellXDimension']").type('10').blur()
303-
cy.contains('Well X is a required field').should('not.exist')
303+
cy.contains('Tube X is a required field').should('not.exist')
304304
cy.get("input[name='wellYDimension']").focus().blur()
305-
cy.contains('Well Y is a required field').should('exist')
305+
cy.contains('Tube Y is a required field').should('exist')
306306
cy.get("input[name='wellYDimension']").type('10').blur()
307-
cy.contains('Well Y is a required field').should('not.exist')
307+
cy.contains('Tube Y is a required field').should('not.exist')
308308
})
309309

310310
it('tests well bottom shape and depth', () => {
@@ -347,9 +347,9 @@ context('Tubes and Block', () => {
347347
cy.contains('close').click({ force: true })
348348

349349
// Brand info
350-
cy.contains('Brand is required').should('exist')
350+
cy.contains('Brand is a required field').should('exist')
351351
cy.get("input[name='brand']").type('TestPro')
352-
cy.contains('Brand is required').should('not.exist')
352+
cy.contains('Brand is a required field').should('not.exist')
353353
cy.get("input[name='brandId']").type('001')
354354

355355
// File info
@@ -361,7 +361,7 @@ context('Tubes and Block', () => {
361361
)
362362

363363
// Test pipette
364-
cy.contains('Test Pipette is required').should('exist')
364+
cy.contains('Test Pipette is a required field').should('exist')
365365
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
366366
cy.get('label')
367367
.contains('Test Pipette')
@@ -371,7 +371,7 @@ context('Tubes and Block', () => {
371371
cy.get('*[class^="Dropdown__option_label"]')
372372
.contains(/P10.*Single-Channel.*GEN1/)
373373
.click()
374-
cy.contains('Test Pipette is required').should('not.exist')
374+
cy.contains('Test Pipette is a required field').should('not.exist')
375375

376376
// All fields present
377377
cy.get('button[class*="_export_button_"]').click({ force: true })
@@ -536,9 +536,9 @@ context('Tubes and Block', () => {
536536
cy.contains('close').click({ force: true })
537537

538538
// Brand info
539-
cy.contains('Brand is required').should('exist')
539+
cy.contains('Brand is a required field').should('exist')
540540
cy.get("input[name='brand']").type('TestPro')
541-
cy.contains('Brand is required').should('not.exist')
541+
cy.contains('Brand is a required field').should('not.exist')
542542
cy.get("input[name='brandId']").type('001')
543543

544544
// File info
@@ -550,7 +550,7 @@ context('Tubes and Block', () => {
550550
)
551551

552552
// Test pipette
553-
cy.contains('Test Pipette is required').should('exist')
553+
cy.contains('Test Pipette is a required field').should('exist')
554554
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
555555
cy.get('label')
556556
.contains('Test Pipette')
@@ -560,7 +560,7 @@ context('Tubes and Block', () => {
560560
cy.get('*[class^="Dropdown__option_label"]')
561561
.contains(/P10.*Single-Channel.*GEN1/)
562562
.click()
563-
cy.contains('Test Pipette is required').should('not.exist')
563+
cy.contains('Test Pipette is a required field').should('not.exist')
564564

565565
// All fields present
566566
cy.get('button[class*="_export_button_"]').click({ force: true })
@@ -721,9 +721,9 @@ context('Tubes and Block', () => {
721721
cy.contains('close').click({ force: true })
722722

723723
// Brand info
724-
cy.contains('Brand is required').should('exist')
724+
cy.contains('Brand is a required field').should('exist')
725725
cy.get("input[name='brand']").type('TestPro')
726-
cy.contains('Brand is required').should('not.exist')
726+
cy.contains('Brand is a required field').should('not.exist')
727727
cy.get("input[name='brandId']").type('001')
728728

729729
// File info
@@ -735,7 +735,7 @@ context('Tubes and Block', () => {
735735
)
736736

737737
// Test pipette
738-
cy.contains('Test Pipette is required').should('exist')
738+
cy.contains('Test Pipette is a required field').should('exist')
739739
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
740740
cy.get('label')
741741
.contains('Test Pipette')
@@ -745,7 +745,7 @@ context('Tubes and Block', () => {
745745
cy.get('*[class^="Dropdown__option_label"]')
746746
.contains(/P10.*Single-Channel.*GEN1/)
747747
.click()
748-
cy.contains('Test Pipette is required').should('not.exist')
748+
cy.contains('Test Pipette is a required field').should('not.exist')
749749

750750
// All fields present
751751
cy.get('button[class*="_export_button_"]').click({ force: true })

labware-library/cypress/integration/labware-creator/tubesRack.spec.js

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ context('Tubes and Rack', () => {
9797
cy.get("input[name='wellXDimension']").should('exist')
9898
cy.get("input[name='wellYDimension']").should('exist')
9999
cy.get("input[name='wellXDimension']").focus().blur()
100-
cy.contains('Well X is a required field').should('exist')
100+
cy.contains('Tube X is a required field').should('exist')
101101
cy.get("input[name='wellXDimension']").type('10').blur()
102-
cy.contains('Well X is a required field').should('not.exist')
102+
cy.contains('Tube X is a required field').should('not.exist')
103103
cy.get("input[name='wellYDimension']").focus().blur()
104-
cy.contains('Well Y is a required field').should('exist')
104+
cy.contains('Tube Y is a required field').should('exist')
105105
cy.get("input[name='wellYDimension']").type('10').blur()
106-
cy.contains('Well Y is a required field').should('not.exist')
106+
cy.contains('Tube Y is a required field').should('not.exist')
107107
})
108108

109109
it('tests well bottom shape and depth', () => {
@@ -146,7 +146,7 @@ context('Tubes and Rack', () => {
146146
cy.contains('close').click({ force: true })
147147

148148
// Brand field should not be shown for Opentrons tube rack (aka non-custom)
149-
cy.contains('Brand is required').should('not.exist')
149+
cy.contains('Brand is a required field').should('not.exist')
150150

151151
// File info
152152
cy.get(
@@ -155,7 +155,7 @@ context('Tubes and Rack', () => {
155155
cy.get("input[placeholder='opentrons_6_tuberack_10ul']").should('exist')
156156

157157
// Test pipette
158-
cy.contains('Test Pipette is required').should('exist')
158+
cy.contains('Test Pipette is a required field').should('exist')
159159
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
160160
cy.get('label')
161161
.contains('Test Pipette')
@@ -165,7 +165,7 @@ context('Tubes and Rack', () => {
165165
cy.get('*[class^="Dropdown__option_label"]')
166166
.contains(/P10.*Single-Channel.*GEN1/)
167167
.click()
168-
cy.contains('Test Pipette is required').should('not.exist')
168+
cy.contains('Test Pipette is a required field').should('not.exist')
169169

170170
// All fields present
171171
cy.get('button[class*="_export_button_"]').click({ force: true })
@@ -271,13 +271,13 @@ context('Tubes and Rack', () => {
271271
cy.get("input[name='wellXDimension']").should('exist')
272272
cy.get("input[name='wellYDimension']").should('exist')
273273
cy.get("input[name='wellXDimension']").focus().blur()
274-
cy.contains('Well X is a required field').should('exist')
274+
cy.contains('Tube X is a required field').should('exist')
275275
cy.get("input[name='wellXDimension']").type('10').blur()
276-
cy.contains('Well X is a required field').should('not.exist')
276+
cy.contains('Tube X is a required field').should('not.exist')
277277
cy.get("input[name='wellYDimension']").focus().blur()
278-
cy.contains('Well Y is a required field').should('exist')
278+
cy.contains('Tube Y is a required field').should('exist')
279279
cy.get("input[name='wellYDimension']").type('10').blur()
280-
cy.contains('Well Y is a required field').should('not.exist')
280+
cy.contains('Tube Y is a required field').should('not.exist')
281281
})
282282

283283
it('tests well bottom shape and depth', () => {
@@ -320,7 +320,7 @@ context('Tubes and Rack', () => {
320320
cy.contains('close').click({ force: true })
321321

322322
// Brand field should not be shown for Opentrons tube rack (aka non-custom)
323-
cy.contains('Brand is required').should('not.exist')
323+
cy.contains('Brand is a required field').should('not.exist')
324324

325325
// File info
326326
cy.get(
@@ -331,7 +331,7 @@ context('Tubes and Rack', () => {
331331
)
332332

333333
// Test pipette
334-
cy.contains('Test Pipette is required').should('exist')
334+
cy.contains('Test Pipette is a required field').should('exist')
335335
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
336336
cy.get('label')
337337
.contains('Test Pipette')
@@ -341,7 +341,7 @@ context('Tubes and Rack', () => {
341341
cy.get('*[class^="Dropdown__option_label"]')
342342
.contains(/P10.*Single-Channel.*GEN1/)
343343
.click()
344-
cy.contains('Test Pipette is required').should('not.exist')
344+
cy.contains('Test Pipette is a required field').should('not.exist')
345345

346346
// All fields present
347347
cy.get('button[class*="_export_button_"]').click({ force: true })
@@ -447,13 +447,13 @@ context('Tubes and Rack', () => {
447447
cy.get("input[name='wellXDimension']").should('exist')
448448
cy.get("input[name='wellYDimension']").should('exist')
449449
cy.get("input[name='wellXDimension']").focus().blur()
450-
cy.contains('Well X is a required field').should('exist')
450+
cy.contains('Tube X is a required field').should('exist')
451451
cy.get("input[name='wellXDimension']").type('10').blur()
452-
cy.contains('Well X is a required field').should('not.exist')
452+
cy.contains('Tube X is a required field').should('not.exist')
453453
cy.get("input[name='wellYDimension']").focus().blur()
454-
cy.contains('Well Y is a required field').should('exist')
454+
cy.contains('Tube Y is a required field').should('exist')
455455
cy.get("input[name='wellYDimension']").type('10').blur()
456-
cy.contains('Well Y is a required field').should('not.exist')
456+
cy.contains('Tube Y is a required field').should('not.exist')
457457
})
458458

459459
it('tests well bottom shape and depth', () => {
@@ -496,7 +496,7 @@ context('Tubes and Rack', () => {
496496
cy.contains('close').click({ force: true })
497497

498498
// Brand field should not be shown for Opentrons tube rack (aka non-custom)
499-
cy.contains('Brand is required').should('not.exist')
499+
cy.contains('Brand is a required field').should('not.exist')
500500

501501
// File info
502502
cy.get(
@@ -507,7 +507,7 @@ context('Tubes and Rack', () => {
507507
)
508508

509509
// Test pipette
510-
cy.contains('Test Pipette is required').should('exist')
510+
cy.contains('Test Pipette is a required field').should('exist')
511511
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
512512
cy.get('label')
513513
.contains('Test Pipette')
@@ -517,7 +517,7 @@ context('Tubes and Rack', () => {
517517
cy.get('*[class^="Dropdown__option_label"]')
518518
.contains(/P10.*Single-Channel.*GEN1/)
519519
.click()
520-
cy.contains('Test Pipette is required').should('not.exist')
520+
cy.contains('Test Pipette is a required field').should('not.exist')
521521

522522
// All fields present
523523
cy.get('button[class*="_export_button_"]').click({ force: true })

labware-library/cypress/integration/labware-creator/wellPlate.spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,9 +231,9 @@ context('Well Plates', () => {
231231
cy.contains('close').click({ force: true })
232232

233233
// Brand info
234-
cy.contains('Brand is required').should('exist')
234+
cy.contains('Brand is a required field').should('exist')
235235
cy.get("input[name='brand']").type('TestPro')
236-
cy.contains('Brand is required').should('not.exist')
236+
cy.contains('Brand is a required field').should('not.exist')
237237
cy.get("input[name='brandId']").type('001')
238238

239239
// File info
@@ -245,7 +245,7 @@ context('Well Plates', () => {
245245
)
246246

247247
// Test pipette
248-
cy.contains('Test Pipette is required').should('exist')
248+
cy.contains('Test Pipette is a required field').should('exist')
249249
// TODO(IL, 2021-05-15): give Dropdown component semantic selectors for E2E
250250
cy.get('label')
251251
.contains('Test Pipette')
@@ -255,7 +255,7 @@ context('Well Plates', () => {
255255
cy.get('*[class^="Dropdown__option_label"]')
256256
.contains(/P10.*Single-Channel.*GEN1/)
257257
.click()
258-
cy.contains('Test Pipette is required').should('not.exist')
258+
cy.contains('Test Pipette is a required field').should('not.exist')
259259

260260
// All fields present
261261
cy.get('button[class*="_export_button_"]').click({ force: true })

labware-library/src/labware-creator/components/HeightGuidingText.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const HeightGuidingText = (props: {
1818
<p>
1919
Reference{' '}
2020
<strong>from the top of the tube to bottom of the rack.</strong>{' '}
21-
Include any well lip. Exclude any cover or cap.
21+
Include any tube lip. Exclude any cover or cap.
2222
</p>
2323
{footer}
2424
</>

0 commit comments

Comments
 (0)