Skip to content

Adds unit and e2e tests for CopyrightWaiverStep Component #152

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Apr 4, 2020
33 changes: 33 additions & 0 deletions tests/e2e/specs/CopyrightWaiverStep.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
module.exports = {
'@tags': ['cws'],
'Check if CopyrightWaiver is rendered correctly'(browser) {
browser
.init()
.assert.elementPresent('.control-label > span')
.click('.control-label > span')
.assert.not.cssClassPresent('.pagination-next', 'disabled')
.click('.pagination-next')
.assert.elementPresent('.select > select')
.click('.select > select')
.click('option[value="CC0 1.0"]')
.assert.not.cssClassPresent('.pagination-next', 'disabled')
.click('.pagination-next')
.assert.elementPresent('.control-label')
.assert.elementPresent('.waiver-textarea')
.assert.elementPresent('label:nth-child(1)')
.assert.elementPresent('label:nth-child(3)')
},

'Check if user can check and uncheck checkboxes'(browser) {
browser
.click('label:nth-child(1)>span.control-label')
.click('label:nth-child(3)>span.control-label')
.assert.not.cssClassPresent('.pagination-next', 'disabled', 'Next Button visible when user checks agreed and confirmed')
.click('label:nth-child(1)>span.control-label')
.assert.cssClassPresent('.pagination-next', 'disabled', 'Next button disabled when user unchecks agreed')
.click('label:nth-child(1)>span.control-label')
.assert.not.cssClassPresent('.pagination-next', 'disabled', 'Next Button visible when user re-checks agreed')
.click('label:nth-child(3)>span.control-label')
.assert.cssClassPresent('.pagination-next', 'disabled', 'Next button disabled when user unchecks confirmed')
}
}
129 changes: 129 additions & 0 deletions tests/unit/specs/components/CopyrightWaiverStep.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
import { createLocalVue, mount } from '@vue/test-utils'
import Buefy from 'buefy'
import Vuex from 'vuex'
import CopyrightWaiverStep from '@/components/CopyrightWaiverStep'

const localVue = createLocalVue()

localVue.use(Vuex)
localVue.use(Buefy)

describe('CopyrightWaiver Step: Check conditional rendering of markup', () => {
let wrapper

beforeEach(() => {
wrapper = mount(CopyrightWaiverStep, {
localVue,
data() {
return {
agreed: false,
confirmed: false
}
},
mocks: {
$t: key => key
}
})
})

afterEach(() => {
wrapper.destroy()
})

it('Component not mounted if status is inactive', () => {
wrapper.setProps({
selected: undefined,
status: 'inactive',
stepId: 6,
stepName: 'CW'
})

expect(wrapper.find('.step-description').exists()).toBeFalsy()
expect(wrapper.find('.step-actions').exists()).toBeFalsy()
})

it('Step Description block mounted if status is previous', () => {
wrapper.setProps({ status: 'previous' })

expect(wrapper.find('.step-description').exists()).toBeTruthy()
expect(wrapper.find('.step-actions').exists()).toBeFalsy()
})

it('Step Actions block mounted if status is current', () => {
wrapper.setProps({ status: 'current' })

expect(wrapper.find('.step-description').exists()).toBeFalsy()
expect(wrapper.find('.step-actions').exists()).toBeTruthy()
expect(wrapper.vm.copyrightWaiverAgreed).toBe(false)
})
})

describe('Test the functionality of Computed properties', () => {
let wrapper

beforeEach(() => {
wrapper = mount(CopyrightWaiverStep, {
localVue,
data() {
return {
agreed: false,
confirmed: false
}
},
propsData: {
selected: true,
status: 'current',
stepId: 6,
stepName: 'CW'
},
mocks: {
$t: key => key
}
})
})

afterEach(() => {
wrapper.destroy()
})

it('User checks confirmed then checks agreed', () => {
const checkbox1 = wrapper.findAll('input[type="checkbox"]').at(1)
checkbox1.setChecked()

const checkbox = wrapper.findAll('input[type="checkbox"]').at(0)
checkbox.setChecked()

expect(wrapper.emitted().change[0]).toStrictEqual(['CW', 6, true])
expect(wrapper.vm.copyrightWaiverAgreed).toBe(true)
})

it('User checks agreed and then checks confirmed', () => {
const checkbox = wrapper.findAll('input[type="checkbox"]').at(0)
checkbox.setChecked()

const checkbox1 = wrapper.findAll('input[type="checkbox"]').at(1)
checkbox1.setChecked()

expect(wrapper.emitted().change[0]).toStrictEqual(['CW', 6, true])
expect(wrapper.vm.copyrightWaiverConfirmed).toBe(true)
})

it('User unchecks agreed', () => {
const checkbox = wrapper.findAll('input[type="checkbox"]').at(0)
checkbox.setChecked()
checkbox.setChecked(false)

expect(wrapper.emitted().change[0]).toStrictEqual(['CW', 6, undefined])
expect(wrapper.vm.copyrightWaiverAgreed).toBe(false)
})

it('User unchecks confirmed', () => {
const checkbox = wrapper.findAll('input[type="checkbox"]').at(1)

checkbox.setChecked()
checkbox.setChecked(false)

expect(wrapper.emitted().change[0]).toStrictEqual(['CW', 6, undefined])
expect(wrapper.vm.copyrightWaiverConfirmed).toBe(false)
})
})