@@ -2,15 +2,16 @@ import Vuex from 'vuex'
22import { shallowMount , createLocalVue , config } from '@vue/test-utils'
33import Stepper from '@/components/Stepper'
44import Buefy from 'buefy'
5+ import VueVocabulary from '@creativecommons/vue-vocabulary/vue-vocabulary.common'
56import VueI18n from 'vue-i18n'
67import Vue from 'vue'
78import store from '@/store'
89
910function getNextButton ( wrapper ) {
10- return wrapper . find ( '.pagination-next' )
11+ return wrapper . findAll ( 'v-button-stub' ) . at ( 1 )
1112}
1213function clickNext ( wrapper ) {
13- getNextButton ( wrapper ) . trigger ( 'click' )
14+ getNextButton ( wrapper ) . vm . $emit ( 'click' )
1415}
1516function getStepId ( wrapper , stepName ) {
1617 return wrapper . vm . steps . filter ( ( step ) => { return step . name === stepName } ) [ 0 ] . id
@@ -40,6 +41,7 @@ function setUp() {
4041 localVue = createLocalVue ( )
4142 localVue . use ( Vuex )
4243 localVue . use ( Buefy )
44+ localVue . use ( VueVocabulary )
4345 Vue . use ( VueI18n )
4446 const messages = require ( '@/locales/en.json' )
4547 const i18n = new VueI18n ( {
@@ -115,46 +117,20 @@ describe('Stepper.vue', () => {
115117 } )
116118 describe ( 'Next button' , ( ) => {
117119 it ( 'becomes clickable only after selection is made' , ( ) => {
118- const nextButton = wrapper . find ( '.pagination-next ' )
119- expect ( nextButton . classes ( 'disabled' ) ) . toBe ( true )
120+ const nextButtonStub = wrapper . find ( 'v-button-stub ' )
121+ expect ( nextButtonStub . classes ( 'disabled' ) ) . toBe ( true )
120122 setStepSelected ( wrapper , 'FS' , false )
121- expect ( nextButton . classes ( 'disabled' ) ) . toBe ( false )
123+ expect ( nextButtonStub . classes ( 'disabled' ) ) . toBe ( false )
122124 } )
123125 it ( 'clicking on Next button advances the step' , ( ) => {
124126 setStepSelected ( wrapper , 'FS' , true )
125- clickNext ( wrapper )
127+ wrapper . find ( 'v-button-stub' ) . vm . $emit ( 'click' )
126128 const steps = wrapper . findAll ( '.step-container' )
127129 expect ( steps . at ( 0 ) . classes ( 'previous' ) ) . toBe ( true )
128130 expect ( steps . at ( 1 ) . classes ( 'current' ) ) . toBe ( true )
129131 } )
130132 } )
131- describe ( 'Previous button' , ( ) => {
132- it ( 'AttributionDetails Step opens correct step when Previous button is clicked' , ( ) => {
133- // For BY- licenses, it should open SA step
134- advanceStep ( wrapper , [
135- { stepName : 'FS' , isSelected : false } ,
136- { stepName : 'BY' , isSelected : true } ,
137- { stepName : 'NC' , isSelected : false } ,
138- { stepName : 'ND' , isSelected : false } ,
139- { stepName : 'SA' , isSelected : false } ] )
140- wrapper . find ( '.pagination-previous' ) . trigger ( 'click' )
141- expect ( wrapper . find ( '.current' ) . classes ( ) ) . toContain ( 'SA' )
142- // for CC0 license, it should open CW step
143- wrapper . findAll ( '.step-header' ) . at ( 1 ) . trigger ( 'click' )
144- setStepSelected ( wrapper , 'BY' , false )
145- clickNext ( wrapper )
146- setStepSelected ( wrapper , 'CW' , true )
147- clickNext ( wrapper )
148- wrapper . find ( '.pagination-previous' ) . trigger ( 'click' )
149- expect ( wrapper . find ( '.current' ) . classes ( ) ) . toContain ( 'CW' )
150- // if using dropdown with a BY- license, it should open DD step
151- wrapper . findAll ( '.step-header' ) . at ( 0 ) . trigger ( 'click' )
152- advanceStep ( wrapper , [ { stepName : 'FS' , isSelected : true } ] )
153- advanceStep ( wrapper , [ { stepName : 'DD' , isSelected : true , license : 'CC BY-NC-ND 4.0' } ] )
154- wrapper . find ( '.pagination-previous' ) . trigger ( 'click' )
155- expect ( wrapper . find ( '.current' ) . classes ( ) ) . toContain ( 'DD' )
156- } )
157- } )
133+
158134 describe ( 'FirstStep interactions' , ( ) => {
159135 it ( 'choosing Yes sets 3 steps visible: FS, Dropdown and AttributionDetails, opens DD' , ( ) => {
160136 advanceStep ( wrapper , [
@@ -166,40 +142,15 @@ describe('Stepper.vue', () => {
166142 } )
167143 it ( 'choosing No sets 6 steps visible: FS, BY, NC, ND, SA and AttributionDetails, opens BY' , ( ) => {
168144 setStepSelected ( wrapper , 'FS' , false )
169- clickNext ( wrapper )
145+ const nextButton = wrapper . find ( 'v-button-stub' )
146+ nextButton . vm . $emit ( 'click' )
170147 const steps = wrapper . findAll ( '.step-container' )
171148 expect ( steps . length ) . toEqual ( 6 )
172149 expect ( wrapper . vm . currentStepId ) . toEqual ( 1 )
173150 expect ( stepHeadingText ( steps , 1 ) ) . toEqual ( wrapper . vm . $t ( 'stepper.BY.question' ) )
174151 } )
175152 } )
176- describe ( 'Step interactions' , ( ) => {
177- it ( 'BY: selecting No updates enabled steps; disables NC, ND and SA; opens CopyrightWaiverStep' , ( ) => {
178- advanceStep ( wrapper , [ { stepName : 'FS' , isSelected : false } ] )
179- setStepSelected ( wrapper , 'BY' , false )
180- const nextButton = getNextButton ( wrapper )
181- expect ( nextButton . classes ( 'disabled' ) ) . toBe ( false )
182- const steps = wrapper . findAll ( '.step-container' )
183- const disabledSteps = wrapper . findAll ( '.disabled' )
184- expect ( disabledSteps . length ) . toEqual ( 3 )
185- expect ( steps . length ) . toEqual ( 7 )
186- clickNext ( wrapper )
187- expect ( wrapper . find ( '.current' ) . classes ( ) ) . toContain ( 'CW' )
188- } )
189- it ( 'ND: selecting ND license updates enabled steps; disables SA step; opens AttributionDetailsStep' , ( ) => {
190- advanceStep ( wrapper , [
191- { stepName : 'FS' , isSelected : false } ,
192- { stepName : 'BY' , isSelected : true } ,
193- { stepName : 'NC' , isSelected : false } ] )
194- setStepSelected ( wrapper , 'ND' , true )
195- const steps = wrapper . findAll ( '.step-container' )
196- const disabledSteps = wrapper . findAll ( '.disabled' )
197- expect ( disabledSteps . length ) . toEqual ( 1 )
198- expect ( steps . length ) . toEqual ( 6 )
199- clickNext ( wrapper )
200- expect ( wrapper . find ( '.current' ) . classes ( ) ) . toContain ( 'AD' )
201- } )
202- } )
153+
203154 describe ( 'DropdownStep interactions' , ( ) => {
204155 beforeEach ( ( ) => {
205156 // setUp()
0 commit comments