UNPKG

@revoloo/cypress6

Version:

Cypress.io end to end testing tool

85 lines (71 loc) 2.47 kB
/// <reference types="cypress" /> import CrosswordBoard from '@/components/CrosswordBoard' import { mount } from '@cypress/vue' import crosswords from '../fixtures/crosswords' const { crossword: bigCrossword, helloWorld: crossword } = crosswords describe('CrosswordBoard', () => { it('requires a crossword', () => { expect(() => mount(CrosswordBoard)).to.throw }) describe('smaller board', () => { describe('successfully renders', () => { beforeEach(() => { mount(CrosswordBoard, { propsData: { crossword, solved: true, }, }).then(() => { cy.get('[data-testid=crossword]').as('board') cy.get('[data-testid=crossword] [data-testid=cell]').as('cells') cy.get('[data-testid=crossword] [data-testid=row]').as('rows') }) }) it('has a crossword puzzle', () => { const wrapper = Cypress.vueWrapper expect(wrapper.props('crossword')).to.exist expect(wrapper.props('crossword')).to.be.a('object') }) it('renders the crossword puzzle successfully', () => { cy.get('@cells').should('have.length', crossword.grid.length) }) it('doesnt contain any placeholder dots', () => { cy.get('@board').should('not.contain.text', '.') }) it('numbers the crossword puzzle correctly', () => { cy.get('@cells').then((cells) => { Array.from(cells).forEach((c, idx) => { if (crossword.gridnums[idx] > 0) { expect(c).to.contain.text(crossword.gridnums[idx]) } else { expect(c).not.to.contain.text(0) } }) }) }) it('renders the correct number of rows and columns', () => { cy.get('@rows') .should('have.length', crossword.size.rows) cy.get('@rows').find('input').should('have.value', crossword.grid[0]) }) }) }) describe('larger board', () => { describe('solved', () => { it('renders successfully', () => { mount(CrosswordBoard, { propsData: { crossword: bigCrossword, solved: true }, }) expect(Cypress.vueWrapper).to.exist }) }) describe('unsolved', () => { it('renders successfully', () => { mount(CrosswordBoard, { propsData: { crossword: bigCrossword, solved: false }, }) expect(Cypress.vueWrapper).to.exist }) }) }) })