CSR-762 tests WIP
This commit is contained in:
parent
d695ab2c64
commit
f853134870
1 changed files with 41 additions and 31 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
import { shallowMount, mount } from "@vue/test-utils";
|
import { shallowMount, mount } from "@vue/test-utils";
|
||||||
import baseInputButton from "./base-input-button";
|
import baseInputButton from "./base-input-button";
|
||||||
|
import inputButtonWrapperMixin from "@/mixins/input-button-wrapper-mixin"
|
||||||
|
|
||||||
describe("baseInputButton.vue", () => {
|
describe("baseInputButton.vue", () => {
|
||||||
describe("general", () => {
|
describe("general", () => {
|
||||||
|
|
@ -713,7 +714,7 @@ describe("baseInputButton.vue", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("pushClickEventToGA", () => {
|
describe("pushClickEventToGA", () => {
|
||||||
test.only("pushEventToGA is called correctly", () => {
|
test("pushEventToGA is called correctly", () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const { wrapper } = setupMocks({
|
const { wrapper } = setupMocks({
|
||||||
mockData: {
|
mockData: {
|
||||||
|
|
@ -721,17 +722,11 @@ describe("baseInputButton.vue", () => {
|
||||||
value: "Bello",
|
value: "Bello",
|
||||||
setLastValuePushedToGa: jest.fn(),
|
setLastValuePushedToGa: jest.fn(),
|
||||||
},
|
},
|
||||||
route: {
|
|
||||||
query: {
|
|
||||||
fmgPage: "myPage",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(wrapper.vm.$route)
|
console.log(wrapper.vm.$route);
|
||||||
|
|
||||||
wrapper.vm.pushEventToGA = jest.fn();
|
|
||||||
wrapper.setData({
|
wrapper.setData({
|
||||||
GaActions: {
|
GaActions: {
|
||||||
CLICKED: "Clicked",
|
CLICKED: "Clicked",
|
||||||
|
|
@ -950,6 +945,25 @@ describe("baseInputButton.vue", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("integration testing", () => {
|
||||||
|
describe("checkbox", () => {
|
||||||
|
test.only("click on both => both are selected", async () => {
|
||||||
|
// Arrange
|
||||||
|
const { wrapper } = setupBaseInputButtonWrapper({
|
||||||
|
isMultiSelect: true
|
||||||
|
})
|
||||||
|
console.log(wrapper.html())
|
||||||
|
|
||||||
|
// Act
|
||||||
|
const buttonWrappers = wrapper.findAllComponents({name: "baseInputButtonWrapper"})
|
||||||
|
await buttonWrappers[0].trigger("click")
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
expect(wrapper.vm.value).toEqual(["value1"])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO KO look at how I tested groups of these in SFA
|
// TODO KO look at how I tested groups of these in SFA
|
||||||
|
|
@ -957,15 +971,6 @@ describe("baseInputButton.vue", () => {
|
||||||
// that this acts like a regular input aside from a different emitted event)
|
// that this acts like a regular input aside from a different emitted event)
|
||||||
|
|
||||||
function setupMocks({ mockData = {}, shouldShallowMount = true }) {
|
function setupMocks({ mockData = {}, shouldShallowMount = true }) {
|
||||||
const baseInputButtonWrapper = {
|
|
||||||
components: { baseInputButton },
|
|
||||||
template: '<baseInputButton v-model="myValue" />',
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
myValue: "",
|
|
||||||
};
|
|
||||||
},
|
|
||||||
};
|
|
||||||
const mountMockData = {
|
const mountMockData = {
|
||||||
...mockData,
|
...mockData,
|
||||||
propsData: {
|
propsData: {
|
||||||
|
|
@ -985,7 +990,9 @@ function setupMocks({ mockData = {}, shouldShallowMount = true }) {
|
||||||
|
|
||||||
wrapper.vm.pushEventToGA = jest.fn();
|
wrapper.vm.pushEventToGA = jest.fn();
|
||||||
wrapper.vm.$route = {
|
wrapper.vm.$route = {
|
||||||
query: {},
|
query: {
|
||||||
|
fmgPage: "myPage",
|
||||||
|
},
|
||||||
};
|
};
|
||||||
wrapper.vm.GaActions = {};
|
wrapper.vm.GaActions = {};
|
||||||
|
|
||||||
|
|
@ -994,28 +1001,31 @@ function setupMocks({ mockData = {}, shouldShallowMount = true }) {
|
||||||
|
|
||||||
function setupBaseInputButtonWrapper({ mockData = {} }) {
|
function setupBaseInputButtonWrapper({ mockData = {} }) {
|
||||||
const baseInputButtonWrapper = {
|
const baseInputButtonWrapper = {
|
||||||
|
name: "baseInputButtonWrapper",
|
||||||
components: { baseInputButton },
|
components: { baseInputButton },
|
||||||
template:
|
template:
|
||||||
'<div><baseInputButton v-model="myValue" groupName="myGroupName" value="X" :isMultiSelect="isMultiSelect" /></div>',
|
'<div><baseInputButton v-bind="$props" @inputButtonClicked="handleAnswerChange" />Test</div>',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
myValue: "",
|
|
||||||
isMultiSelect: mockData.isMultiSelect,
|
isMultiSelect: mockData.isMultiSelect,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
mixins: [inputButtonWrapperMixin]
|
||||||
// const parentComponent = mount({
|
|
||||||
// data() {
|
|
||||||
// return {
|
|
||||||
// value: "value1",
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// template: '<div><baseInputButton v-model="value" value="value1" /><baseInputButton v-model="value" value="value2" /></div>',
|
|
||||||
// components: { baseInputButton }
|
|
||||||
// })
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const wrapper = mount(baseInputButtonWrapper, {});
|
let parentComponentTemplate = "<div>"
|
||||||
|
parentComponentTemplate += `<baseInputButtonWrapper v-model="value" :isMultiSelect="isMultiSelect" groupName="myGroupName" value="value1" />`
|
||||||
|
parentComponentTemplate += `<baseInputButtonWrapper v-model="value" :isMultiSelect="isMultiSelect" groupName="myGroupName" value="value2" />`
|
||||||
|
parentComponentTemplate += `</div>`
|
||||||
|
const wrapper = mount({
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
value: mockData.initialValue,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
template: parentComponentTemplate,
|
||||||
|
components: { baseInputButtonWrapper }
|
||||||
|
})
|
||||||
|
|
||||||
return { wrapper };
|
return { wrapper };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue