Skip to content

Commit b3e3565

Browse files
committed
refactor: extract shared V2_HEADERS constant and add FIRST_NAME test
Move the duplicated V2 API version header into a shared v2-headers.ts module, reused by both location and ticket services. Remove unused InputFieldType. Add test for minimal FIRST_NAME field creation.
1 parent 8feee76 commit b3e3565

6 files changed

Lines changed: 30 additions & 19 deletions

File tree

packages/javascript-api/src/lib/model/input-field/input-field-type.ts

Lines changed: 0 additions & 10 deletions
This file was deleted.

packages/javascript-api/src/lib/services/location/location.service.spec.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as sinon from 'sinon';
22
import { Desk } from '../../model/desk';
33
import { InputFieldCreationRequest } from '../../model/input-field/input-field-creation-request';
4+
import { FirstNameFieldCreationRequest } from '../../model/input-field/first-name-field-creation-request';
45
import { NumericFieldCreationRequest } from '../../model/input-field/numeric-field-creation-request';
56
import { SelectFieldCreationRequest } from '../../model/input-field/select-field-creation-request';
67
import { Qminder } from '../../qminder';
@@ -329,6 +330,30 @@ describe('Location service', function () {
329330
}),
330331
).toBeTruthy();
331332
});
333+
334+
it('sends a FIRST_NAME field with only base properties', async function () {
335+
const firstNameField: FirstNameFieldCreationRequest = {
336+
type: 'FIRST_NAME',
337+
id: 'f6a7b8c9-d0e1-2345-faba-456789012345',
338+
location: { id: LOCATION_ID },
339+
isMandatoryBeforeAdded: false,
340+
isMandatoryBeforeServed: false,
341+
isMandatoryInRemoteSignIn: false,
342+
isVisibleInWaitingDrawer: true,
343+
isVisibleInServingDrawer: true,
344+
visibleForLines: [],
345+
showInRemoteSignIn: false,
346+
};
347+
348+
await LocationService.createInputField(firstNameField);
349+
expect(
350+
requestStub.calledWith('input-fields', {
351+
method: 'POST',
352+
body: JSON.stringify(firstNameField),
353+
headers: { 'X-Qminder-API-Version': '2020-09-01' },
354+
}),
355+
).toBeTruthy();
356+
});
332357
});
333358

334359
afterEach(function () {

packages/javascript-api/src/lib/services/location/location.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { OpeningHours } from '../../model/opening-hours.js';
55
import { OpeningHoursException } from '../../model/opening-hours-exception.js';
66
import { extractId, IdOrObject } from '../../util/id-or-object.js';
77
import { ApiBase } from '../api-base/api-base.js';
8-
9-
const V2_HEADERS = { 'X-Qminder-API-Version': '2020-09-01' } as const;
8+
import { V2_HEADERS } from '../v2-headers.js';
109

1110
export function list(): Promise<Location[]> {
1211
return ApiBase.request('v1/locations/').then(

packages/javascript-api/src/lib/services/ticket/ticket.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
extractIdToNumber,
1111
} from '../../util/id-or-object.js';
1212
import { ApiBase } from '../api-base/api-base.js';
13+
import { V2_HEADERS } from '../v2-headers.js';
1314
import { ResponseValidationError } from '../../model/errors/response-validation-error.js';
1415
import { ExternalData } from '../../model/ticket/external-data.js';
1516

@@ -329,9 +330,7 @@ export async function create(
329330
const result: TicketCreatedResponse = await ApiBase.request('tickets', {
330331
method: 'POST',
331332
body,
332-
headers: {
333-
'X-Qminder-API-Version': '2020-09-01',
334-
},
333+
headers: V2_HEADERS,
335334
});
336335
if (!result.id) {
337336
throw new ResponseValidationError('Response does not contain "id"');
@@ -360,9 +359,7 @@ export async function edit(
360359
await ApiBase.request(`tickets/${ticketId}`, {
361360
method: 'PATCH',
362361
body,
363-
headers: {
364-
'X-Qminder-API-Version': '2020-09-01',
365-
},
362+
headers: V2_HEADERS,
366363
});
367364
}
368365

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const V2_HEADERS = { 'X-Qminder-API-Version': '2020-09-01' } as const;

packages/javascript-api/src/public-api/model.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ export { InputFieldCreationRequest } from '../lib/model/input-field/input-field-
3838
export { InputFieldBase } from '../lib/model/input-field/input-field-base.js';
3939
export { LocationRef } from '../lib/model/input-field/location-ref.js';
4040
export { LineRef } from '../lib/model/input-field/line-ref.js';
41-
export { InputFieldType } from '../lib/model/input-field/input-field-type.js';
4241
export { InputFieldTranslation } from '../lib/model/input-field/input-field-translation.js';
4342
export { SelectOption } from '../lib/model/input-field/select-option.js';
4443
export { SelectOptionTranslation } from '../lib/model/input-field/select-option-translation.js';

0 commit comments

Comments
 (0)