Updated unit tests
This commit is contained in:
parent
9e63cd0f9c
commit
0ae55bf21a
3 changed files with 42 additions and 7 deletions
|
|
@ -6,14 +6,14 @@ module.exports = {
|
||||||
transform: { "^.+\\.vue$": "vue-jest" },
|
transform: { "^.+\\.vue$": "vue-jest" },
|
||||||
moduleFileExtensions: ["js", "vue"],
|
moduleFileExtensions: ["js", "vue"],
|
||||||
collectCoverageFrom: [
|
collectCoverageFrom: [
|
||||||
"src/**/*.{js,vue}",
|
//"src/**/*.{js,vue}",
|
||||||
"!src/main.js",
|
"!src/main.js",
|
||||||
"!src/constants/*.js",
|
"!src/constants/*.js",
|
||||||
"!src/router/**/*.js",
|
"!src/router/**/*.js",
|
||||||
"!src/helpers/unit-test-helper.js",
|
"!src/helpers/unit-test-helper.js",
|
||||||
"!src/layouts/component-test/component-test.vue",
|
"!src/layouts/component-test/component-test.vue",
|
||||||
"!src/layouts/form-test/form-test.vue",
|
"!src/layouts/form-test/form-test.vue",
|
||||||
"!src/layouts/vin-lookup/vin-lookup.vue",
|
"src/layouts/vin-lookup/vin-lookup.vue",
|
||||||
"!src/layouts/vehicle-damage/windshield-damage-type-question/windshield-damage-type-question.vue",
|
"!src/layouts/vehicle-damage/windshield-damage-type-question/windshield-damage-type-question.vue",
|
||||||
"!src/layouts/vehicle-damage/windshield-options/windshield-options.vue",
|
"!src/layouts/vehicle-damage/windshield-options/windshield-options.vue",
|
||||||
"!src/layouts/part-questions/**/*.vue",
|
"!src/layouts/part-questions/**/*.vue",
|
||||||
|
|
|
||||||
|
|
@ -69,9 +69,38 @@ describe("vin-lookup.vue", () => {
|
||||||
expect(wrapper.vm.navigateForward).toHaveBeenCalled();
|
expect(wrapper.vm.navigateForward).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("Should do a VIN lookup if the user has clicked on the VIN field and entered a new VIN or changed a previously matched VIN.", async () => {
|
||||||
|
// Arrange
|
||||||
|
const { wrapper } = setupMocks({});
|
||||||
|
wrapper.vm.vinTouched = true;
|
||||||
|
wrapper.vm.vin = "foo";
|
||||||
|
wrapper.vm.initialVin = "!foo";
|
||||||
|
|
||||||
|
wrapper.vm.navigateForward = jest.fn();
|
||||||
|
const vehicleLookupApiResponse = {
|
||||||
|
data: {
|
||||||
|
carId: 'new carId' // does not match the store value
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const vinPromise = Promise.resolve(vehicleLookupApiResponse);
|
||||||
|
|
||||||
|
wrapper.vm.lookupVehicle = jest.fn().mockImplementation(() => vinPromise);
|
||||||
|
|
||||||
|
// Act
|
||||||
|
await wrapper.vm.forwardButtonAction();
|
||||||
|
|
||||||
|
//Assert
|
||||||
|
expect(wrapper.vm.lookupVehicle).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
it("Should not call navigateForward() if the store carId does not match the vin response carId and forward button is clicked", async () => {
|
it("Should not call navigateForward() if the store carId does not match the vin response carId and forward button is clicked", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const { wrapper } = setupMocks({});
|
const { wrapper } = setupMocks({});
|
||||||
|
// New lookup
|
||||||
|
wrapper.vm.vinTouched = true;
|
||||||
|
wrapper.vm.vin = "";
|
||||||
|
wrapper.vm.initialVin = "foo";
|
||||||
|
|
||||||
const vehicleLookupApiResponse = {
|
const vehicleLookupApiResponse = {
|
||||||
data: {
|
data: {
|
||||||
carId: 'new carId' // does not match the store value
|
carId: 'new carId' // does not match the store value
|
||||||
|
|
@ -138,14 +167,21 @@ describe("vin-lookup.vue", () => {
|
||||||
it("Should not call navigateForward() when forward button is clicked but lookupVehicle errors out.", async () => {
|
it("Should not call navigateForward() when forward button is clicked but lookupVehicle errors out.", async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const { wrapper } = setupMocks({});
|
const { wrapper } = setupMocks({});
|
||||||
|
wrapper.vm.vinTouched = true;
|
||||||
|
wrapper.vm.vin = "foo";
|
||||||
|
wrapper.vm.initialVin = "!foo";
|
||||||
|
|
||||||
const vehicleLookupApiResponse = {
|
const vehicleLookupApiResponse = {
|
||||||
data: {
|
status: {
|
||||||
carId: 'new carId' // does not match the store value
|
carId: 'new carId' // does not match the store value
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const vinPromise = Promise.reject(vehicleLookupApiResponse);
|
const vinPromise = Promise.reject(vehicleLookupApiResponse);
|
||||||
|
|
||||||
wrapper.vm.lookupVehicle = jest.fn().mockImplementation(() => vinPromise);
|
const response = {
|
||||||
|
status: 404
|
||||||
|
};
|
||||||
|
wrapper.vm.lookupVehicle = jest.fn().mockImplementation((response) => vinPromise);
|
||||||
wrapper.vm.navigateForward = jest.fn();
|
wrapper.vm.navigateForward = jest.fn();
|
||||||
|
|
||||||
wrapper.vm.previouslyEnteredCarId = 'new carId';
|
wrapper.vm.previouslyEnteredCarId = 'new carId';
|
||||||
|
|
|
||||||
|
|
@ -320,11 +320,10 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the vin has been touched and we've gotten this far it means they've entered vin or it's already been entered.
|
// If the user has clicked on the VIN field, either they are doing a new VIN lookup or changing the VIN previously matched.
|
||||||
|
// Therefore we need to do a VIN Lookup
|
||||||
let vehicleLookupResponse;
|
let vehicleLookupResponse;
|
||||||
if (this.vinTouched && this.vin != this.initialVin) {
|
if (this.vinTouched && this.vin != this.initialVin) {
|
||||||
console.log(this.vin);
|
|
||||||
|
|
||||||
const vinToLookup = this.vinTouched ? this.vin : this.initialVin;
|
const vinToLookup = this.vinTouched ? this.vin : this.initialVin;
|
||||||
const vehicleLookup = this.lookupVehicle(vinToLookup);
|
const vehicleLookup = this.lookupVehicle(vinToLookup);
|
||||||
vehicleLookupResponse = await vehicleLookup.catch((response) => {
|
vehicleLookupResponse = await vehicleLookup.catch((response) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue