UNPKG

wdio-allure-reporter

Version:

A WebdriverIO plugin. Report results in Allure format.

88 lines (76 loc) 5.27 kB
import { expect } from 'chai' import {clean, runCucumber} from '../helper' const configPath = './test/fixtures/wdio.conf/wdio.conf.cucumber.step.js' describe('cucumber test scenario with steps', () => { beforeEach(clean) it('should add feature labels for test cases', () => { return runCucumber(['passing'], configPath).then((results) => { expect(results).to.have.lengthOf(1) const result = results[0] expect(result('test-case label[name="feature"]').eq(0).attr('value')).to.equal('A passing feature') }) }) it('should report one test per scenario - passed case', () => { return runCucumber(['passing'], configPath).then((results) => { expect(results).to.have.lengthOf(1) const result = results[0] expect(result('test-case')).to.have.lengthOf(1) expect(result('test-case').attr('status')).to.be.equal('passed') expect(result('test-case > steps > step')).to.have.lengthOf(3) expect(result('test-case > steps > step > name').eq(0).text()).to.be.equal('I visit "/index.html"') expect(result('test-case > steps > step').eq(0).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(1).text()).to.be.equal('I click the clickable region') expect(result('test-case > steps > step').eq(1).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(2).text()).to.be.equal('I should get the result: 1') expect(result('test-case > steps > step').eq(2).attr('status')).to.be.equal('passed') expect(result('test-case label[name="thread"]')).to.have.lengthOf(1) }) }) it('should report one test per scenario - failed case', () => { return runCucumber(['failing'], configPath).then((results) => { expect(results).to.have.lengthOf(1) const result = results[0] expect(result('test-case')).to.have.lengthOf(1) expect(result('test-case').attr('status')).to.be.equal('failed') expect(result('test-case > steps > step')).to.have.lengthOf(3) expect(result('test-case > steps > step > name').eq(0).text()).to.be.equal('I visit "/index.html"') expect(result('test-case > steps > step').eq(0).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(1).text()).to.be.equal('I click the clickable region') expect(result('test-case > steps > step').eq(1).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(2).text()).to.be.equal('I run failing step') expect(result('test-case > steps > step').eq(2).attr('status')).to.be.equal('failed') }) }) it('should report one test per scenario - broken case', () => { return runCucumber(['broken'], configPath).then((results) => { expect(results).to.have.lengthOf(1) const result = results[0] expect(result('test-case')).to.have.lengthOf(1) expect(result('test-case').attr('status')).to.be.equal('broken') expect(result('test-case > steps > step')).to.have.lengthOf(3) expect(result('test-case > steps > step > name').eq(0).text()).to.be.equal('I visit "/index.html"') expect(result('test-case > steps > step').eq(0).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(1).text()).to.be.equal('I click the clickable region') expect(result('test-case > steps > step').eq(1).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(2).text()).to.be.equal('I try to use undefined step') expect(result('test-case > steps > step').eq(2).attr('status')).to.be.equal('broken') }) }) it('should report one test per scenario - pending case', () => { return runCucumber(['withPending'], configPath).then((results) => { expect(results).to.have.lengthOf(1) const result = results[0] expect(result('test-case')).to.have.lengthOf(1) expect(result('test-case').attr('status')).to.be.equal('failed') expect(result('test-case > steps > step')).to.have.lengthOf(4) expect(result('test-case > steps > step > name').eq(0).text()).to.be.equal('I visit "/index.html"') expect(result('test-case > steps > step').eq(0).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(1).text()).to.be.equal('I click the clickable region') expect(result('test-case > steps > step').eq(1).attr('status')).to.be.equal('passed') expect(result('test-case > steps > step > name').eq(2).text()).to.be.equal('I run failing step') expect(result('test-case > steps > step').eq(2).attr('status')).to.be.equal('failed') expect(result('test-case > steps > step > name').eq(3).text()).to.be.equal('I see steps after as pending') expect(result('test-case > steps > step').eq(3).attr('status')).to.be.equal('pending') }) }) })