diff --git a/packages/graphql/api/orders.test.js b/packages/graphql/api/orders.test.js index 9ae1511..c08ea58 100644 --- a/packages/graphql/api/orders.test.js +++ b/packages/graphql/api/orders.test.js @@ -1282,6 +1282,7 @@ describe('OrdersService', () => { order: { ...mockOrder, client: mockCustomer, + datetime_start: now.subtract(1, 'hour').toISOString(), // заказ в прошлом slot: { ...mockSlot, master: mockMaster }, }, }, @@ -1345,6 +1346,7 @@ describe('OrdersService', () => { order: { ...mockOrder, client: mockCustomer, + datetime_start: now.subtract(1, 'hour').toISOString(), // заказ в прошлом slot: { ...mockSlot, master: mockMaster }, }, }, @@ -1395,14 +1397,14 @@ describe('OrdersService', () => { }); it('should throw error when trying to complete order before start time', async () => { - const pastOrder = { + const futureOrder = { ...mockOrder, - datetime_start: now.subtract(1, 'hour').toISOString(), + datetime_start: now.add(1, 'hour').toISOString(), }; const mockQuery = vi.fn().mockResolvedValue({ data: { - order: pastOrder, + order: futureOrder, }, }); diff --git a/packages/graphql/api/orders.ts b/packages/graphql/api/orders.ts index 69f4699..5ea36f1 100644 --- a/packages/graphql/api/orders.ts +++ b/packages/graphql/api/orders.ts @@ -8,7 +8,7 @@ import { ServicesService } from './services'; import { SlotsService } from './slots'; import { type VariablesOf } from '@graphql-typed-document-node/core'; import { isCustomerMaster } from '@repo/utils/customer'; -import { getMinutes, isBeforeNow } from '@repo/utils/datetime-format'; +import { getMinutes, isBeforeNow, isNowOrAfter } from '@repo/utils/datetime-format'; import dayjs from 'dayjs'; export const ERRORS = { @@ -381,7 +381,7 @@ export class OrdersService extends BaseService { if ( state === GQL.Enum_Order_State.Completed && existingOrder?.datetime_start && - isBeforeNow(existingOrder?.datetime_start, 'minute') + isNowOrAfter(existingOrder?.datetime_start, 'minute') ) { throw new Error(ERRORS.CANNOT_COMPLETE_BEFORE_START); } diff --git a/packages/utils/src/datetime-format.ts b/packages/utils/src/datetime-format.ts index 0703a71..7be0d27 100644 --- a/packages/utils/src/datetime-format.ts +++ b/packages/utils/src/datetime-format.ts @@ -106,8 +106,8 @@ export function isBeforeNow(date: Date | string, unit: OpUnitType = 'day') { return inputDate.isBefore(now, unit); } -export function isNowOrAfter(date: Date | string) { - return !isBeforeNow(date); +export function isNowOrAfter(date: Date | string, unit: OpUnitType = 'day') { + return !isBeforeNow(date, unit); } export function sumTime(datetime: DateTime, durationMinutes: number) {