Merge pull request #1922 from Safelite/feature/CSR-1903A

Correct Drop Off Schedule Duration
This commit is contained in:
Josh Seltzer 2024-07-26 08:30:11 -04:00 committed by GitHub
commit aa74d97abb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 48 additions and 3 deletions

View file

@ -1,6 +1,6 @@
// Components
import confirmation from "@/layouts/confirmation/confirmation.vue";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants";
import { applicationConfig } from "@/constants/application-config.js";
// Supporting Files
@ -397,6 +397,34 @@ describe("computed properties...", () => {
// Assert
expect(testValue).toEqual("Duration: 30 - 45 minutes");
});
test("Appointment Duration should return with All Day.", () => {
//Arrange
store.getters.submittedOrder.schedule.jobMaxMinutes = 45;
store.getters.submittedOrder.schedule.jobMinMinutes = 30;
store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.ALL_DAY_DROP_OFF;
const { wrapper } = setupMocks({});
// Act
const testValue = wrapper.vm.AppointmentDuration;
// Assert
expect(testValue).toEqual("Duration: All Day");
});
test("Appointment Duration should return with Overnight.", () => {
//Arrange
store.getters.submittedOrder.schedule.jobMaxMinutes = 45;
store.getters.submittedOrder.schedule.jobMinMinutes = 30;
store.getters.submittedOrder.schedule.routeCode = RouteCodeFlags.OVERNIGHT_DROP_OFF;
const { wrapper } = setupMocks({});
// Act
const testValue = wrapper.vm.AppointmentDuration;
// Assert
expect(testValue).toEqual("Duration: Overnight");
});
});
function setupMocks({ customMountOptions }) {

View file

@ -96,7 +96,7 @@ import analyticsMixin from "@/mixins/analytics-mixin";
import store from "@/store";
import { storeActions } from "@/constants/store-actions";
import { fetchCmsContentForPage } from "@/helpers/cms-content-helper";
import { AppointmentTypeStrings } from "@/constants/schedule-constants";
import { AppointmentTypeStrings, RouteCodeFlags } from "@/constants/schedule-constants";
import { settleAllPromises } from "@/helpers/layout-helper";
import { applicationConfig } from "@/constants/application-config.js";
import { convertDateStringToDate } from "@/layouts/schedule/helpers/schedule-helper";
@ -326,7 +326,24 @@ export default {
AppointmentDuration() {
const durationMaximum = store.getters.submittedOrder?.schedule?.jobMaxMinutes;
const durationMinimum = store.getters.submittedOrder?.schedule?.jobMinMinutes;
return "Duration: " + getDisplayTextForDurationLength(durationMinimum, durationMaximum);
const durationLengthString = "Duration: ";
if (
store.getters.submittedOrder?.schedule?.routeCode.includes(
RouteCodeFlags.ALL_DAY_DROP_OFF
)
) {
return durationLengthString.concat("All Day");
} else if (
store.getters.submittedOrder?.schedule?.routeCode.includes(
RouteCodeFlags.OVERNIGHT_DROP_OFF
)
) {
return durationLengthString.concat("Overnight");
} else {
return durationLengthString.concat(
getDisplayTextForDurationLength(durationMinimum, durationMaximum)
);
}
},
},
methods: {