From dceebd8b01258acdd019eb90d20d71b03b662972 Mon Sep 17 00:00:00 2001 From: daniel-dx Date: Sun, 10 Mar 2019 15:00:49 +0800 Subject: [PATCH] test(ncform): complete ui.status test cases --- .../integration/examples/ui.status.spec.js | 60 +++++++ .../components/vue-ncform/_ui.status.html | 151 ++++++++++++++++++ 2 files changed, 211 insertions(+) create mode 100644 packages/ncform-e2e/ncform/cypress/integration/examples/ui.status.spec.js create mode 100644 packages/ncform/examples/components/vue-ncform/_ui.status.html diff --git a/packages/ncform-e2e/ncform/cypress/integration/examples/ui.status.spec.js b/packages/ncform-e2e/ncform/cypress/integration/examples/ui.status.spec.js new file mode 100644 index 0000000..e93469c --- /dev/null +++ b/packages/ncform-e2e/ncform/cypress/integration/examples/ui.status.spec.js @@ -0,0 +1,60 @@ +/// + +const md5 = require('blueimp-md5'); + +context('ui.status', () => { + + before(() => { + cy.visit('http://localhost:3000/examples/components/vue-ncform/_ui.status.html') + }) + + it('Disabled: boolean / dx', () => { + let id = md5('Disabled: boolean / dx'); + cy.get(`[data-cy=${id}]`).within(() => { + cy.get('label').contains('enable').next().find('input').should('be.enabled'); + cy.get('label').contains('name1').next().find('input').should('not.be.enabled'); + cy.get('label').contains('name2').next().find('input').should('not.be.enabled'); + + cy.get('label').contains('enable').next().find('input').type('daniel'); + cy.get('label').contains('name2').next().find('input').should('be.enabled'); + + cy.get('label').contains('enable').next().find('input').clear(); + cy.get('label').contains('name2').next().find('input').should('not.be.enabled'); + }) + }) + + it('Readonly: boolean / dx', () => { + let id = md5('Readonly: boolean / dx'); + cy.get(`[data-cy=${id}]`).within(() => { + cy.get('label').contains('readonly').next().find('input').as('readonly'); + cy.get('label').contains('name1').next().find('input').as('name1'); + cy.get('label').contains('name2').next().find('input').as('name2'); + + cy.get('@readonly').then($dom => expect($dom.attr('readonly')).to.be.empty); + cy.get('@name1').then($dom => expect($dom.attr('readonly')).to.equal('readonly')); + cy.get('@name2').then($dom => expect($dom.attr('readonly')).to.equal('readonly')); + + cy.get('@readonly').type('daniel'); + cy.get('@name2').then($dom => expect($dom.attr('readonly')).to.be.empty); + + cy.get('@readonly').clear(); + cy.get('@name2').then($dom => expect($dom.attr('readonly')).to.equal('readonly')); + }) + }) + + it('Hidden: boolean / dx', () => { + let id = md5('Hidden: boolean / dx'); + cy.get(`[data-cy=${id}]`).within(() => { + cy.get('label').contains('hidden').next().find('input').should('be.visible'); + cy.get('label').contains('name1').next().find('input').should('not.be.visible'); + cy.get('label').contains('name2').next().find('input').should('not.be.visible'); + + cy.get('label').contains('hidden').next().find('input').type('daniel'); + cy.get('label').contains('name2').next().find('input').should('be.visible'); + + cy.get('label').contains('hidden').next().find('input').clear(); + cy.get('label').contains('name2').next().find('input').should('not.be.visible'); + }) + }) + +}) diff --git a/packages/ncform/examples/components/vue-ncform/_ui.status.html b/packages/ncform/examples/components/vue-ncform/_ui.status.html new file mode 100644 index 0000000..bda905e --- /dev/null +++ b/packages/ncform/examples/components/vue-ncform/_ui.status.html @@ -0,0 +1,151 @@ + + + + + vue-ncform Example + + + + + +
+ +
+ + + + + + + +