Skip to content

Commit 44aaa4f

Browse files
committed
test: add validation for closing dataset type select dropdown on outside click, focus, and escape key
1 parent d7fed1d commit 44aaa4f

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

tests/component/sections/create-dataset/CreateDataset.spec.tsx

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,5 +322,66 @@ describe('Create Dataset', () => {
322322

323323
cy.findByTestId('selected-type').should('have.text', 'foo')
324324
})
325+
326+
// This tests are to validate that the dataset type select dropdown is closed when clicking outside, focusing outside or pressing escape
327+
it('should close dataset type select when clicking and focusing outside and pressing escape', () => {
328+
const datasetTypesMock = [
329+
DatasetTypeMother.creatDefaultDatasetType(),
330+
DatasetTypeMother.create({
331+
id: 5,
332+
name: 'foo'
333+
})
334+
]
335+
336+
datasetRepository.getAvailableDatasetTypes = cy.stub().resolves(datasetTypesMock)
337+
338+
cy.customMount(
339+
<CreateDataset
340+
datasetRepository={datasetRepository}
341+
metadataBlockInfoRepository={metadataBlockInfoRepository}
342+
collectionRepository={collectionRepository}
343+
collectionId={'test-collectionId'}
344+
/>
345+
)
346+
cy.findByTestId('dataset-type-select').should('exist').as('datasetTypeSelect')
347+
348+
cy.get('@datasetTypeSelect').within(() => {
349+
cy.findByLabelText('Toggle dataset types options menu').click()
350+
cy.get('[role="menu"]').should('be.visible')
351+
})
352+
353+
// Click outside test
354+
cy.get('body').click(0, 0)
355+
356+
cy.get('@datasetTypeSelect').within(() => {
357+
cy.get('[role="menu"]').should('not.be.visible')
358+
})
359+
360+
// Open again
361+
cy.get('@datasetTypeSelect').within(() => {
362+
cy.findByLabelText('Toggle dataset types options menu').click()
363+
cy.get('[role="menu"]').should('be.visible')
364+
})
365+
366+
// Focus outside test
367+
cy.findByLabelText(/Title/).focus()
368+
369+
cy.get('@datasetTypeSelect').within(() => {
370+
cy.get('[role="menu"]').should('not.be.visible')
371+
})
372+
373+
// Open again
374+
cy.get('@datasetTypeSelect').within(() => {
375+
cy.findByLabelText('Toggle dataset types options menu').click()
376+
cy.get('[role="menu"]').should('be.visible')
377+
})
378+
379+
// Press escape test
380+
cy.get('body').trigger('keydown', { key: 'Escape', force: true })
381+
382+
cy.get('@datasetTypeSelect').within(() => {
383+
cy.get('[role="menu"]').should('not.be.visible')
384+
})
385+
})
325386
})
326387
})

0 commit comments

Comments
 (0)