Skip to content

Commit

Permalink
Use endpoints depending on tenant
Browse files Browse the repository at this point in the history
  • Loading branch information
artem-blazhko committed Aug 6, 2024
1 parent f5028f3 commit 1cbc977
Show file tree
Hide file tree
Showing 10 changed files with 144 additions and 468 deletions.
9 changes: 4 additions & 5 deletions src/RequestForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ class RequestForm extends React.Component {
if (selectedResource?.id && user?.id) {
const resourceTypeId = getResourceTypeId(isTitleLevelRequest);

this.findRequestTypes(selectedResource.id, user.id, resourceTypeId, selectedResource.tenantId);
this.findRequestTypes(selectedResource.id, user.id, resourceTypeId);
}
}

Expand Down Expand Up @@ -670,7 +670,7 @@ class RequestForm extends React.Component {
}
}

findRequestTypes = (resourceId, requesterId, resourceType, tenantId) => {
findRequestTypes = (resourceId, requesterId, resourceType) => {
const {
findResource,
form,
Expand All @@ -689,7 +689,6 @@ class RequestForm extends React.Component {
operation: REQUEST_OPERATIONS.CREATE,
[resourceType]: resourceId,
requesterId,
tenantId,
};
form.change(REQUEST_FORM_FIELD_NAMES.REQUEST_TYPE, DEFAULT_REQUEST_TYPE_VALUE);
}
Expand Down Expand Up @@ -816,7 +815,7 @@ class RequestForm extends React.Component {
})
.then(item => {
if (item && selectedUser?.id) {
this.findRequestTypes(item.id, selectedUser.id, ID_TYPE_MAP.ITEM_ID, item.tenantId);
this.findRequestTypes(item.id, selectedUser.id, ID_TYPE_MAP.ITEM_ID);
}

return item;
Expand Down Expand Up @@ -891,7 +890,7 @@ class RequestForm extends React.Component {
})
.then(instance => {
if (instance && selectedUser?.id) {
this.findRequestTypes(instance.id, selectedUser.id, ID_TYPE_MAP.INSTANCE_ID, instance.tenantId);
this.findRequestTypes(instance.id, selectedUser.id, ID_TYPE_MAP.INSTANCE_ID);
}

return instance;
Expand Down
10 changes: 1 addition & 9 deletions src/RequestFormContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import PropTypes from 'prop-types';
import RequestForm from './RequestForm';
import {
getRequestLevelValue,
isMultiDataTenant,
} from './utils';
import {
fulfillmentTypeMap,
Expand All @@ -28,7 +27,6 @@ const RequestFormContainer = ({
parentResources,
request,
onSubmit,
stripes,
...rest
}) => {
const {
Expand Down Expand Up @@ -167,13 +165,7 @@ const RequestFormContainer = ({
unset(requestData, 'keyOfInstanceIdField');
unset(requestData, 'keyOfRequestTypeField');

if (isMultiDataTenant(stripes)) {
unset(requestData, 'item');
unset(requestData, 'requester');
unset(requestData, 'holdingsRecordId');
}

return onSubmit(requestData, data.requester.personal);
return onSubmit(requestData);
};

return (
Expand Down
145 changes: 42 additions & 103 deletions src/RequestFormContainer.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,8 @@ import {
REQUEST_LEVEL_TYPES,
fulfillmentTypeMap,
} from './constants';
import { isMultiDataTenant } from './utils';

jest.mock('./RequestForm', () => jest.fn(() => <div />));
jest.mock('./utils', () => ({
...jest.requireActual('./utils'),
isMultiDataTenant: jest.fn(() => false),
}));

const defaultProps = {
parentResources: {},
Expand Down Expand Up @@ -94,19 +89,13 @@ describe('RequestFormContainer', () => {
keyOfInstanceIdField: 0,
keyOfRequestTypeField: 0,
};
const requester = {
personal: {},
};

describe('When item level request', () => {
const requestExpirationDate = new Date().toISOString();
const submitData = {
...basicSubmitData,
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
fulfillmentPreference: fulfillmentTypeMap.HOLD_SHELF,
item: {},
itemId: 'itemId',
requester,
requestExpirationDate,
};
const props = {
Expand All @@ -120,7 +109,8 @@ describe('RequestFormContainer', () => {
holdingsRecordId: 'holdingsRecordId',
};
const selectItemLabel = 'Select Item';
const triggerSubmit = () => {

beforeEach(() => {
RequestForm.mockImplementation(({
onSubmit,
onSetSelectedItem,
Expand Down Expand Up @@ -148,60 +138,24 @@ describe('RequestFormContainer', () => {
const selectItemButton = screen.getByText(selectItemLabel);

fireEvent.click(selectItemButton);
};

describe('When single tenant env', () => {
beforeEach(() => {
triggerSubmit();
});

it('should submit form data', () => {
const expectedArgs = [
{
holdingsRecordId: selectedItem.holdingsRecordId,
fulfillmentPreference: fulfillmentTypeMap.HOLD_SHELF,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
pickupServicePointId: submitData.pickupServicePointId,
item: submitData.item,
itemId: submitData.itemId,
requestExpirationDate,
requester,
},
requester.personal,
];
const requestForm = screen.getByTestId(testIds.requestForm);

fireEvent.submit(requestForm);

expect(defaultProps.onSubmit).toHaveBeenCalledWith(...expectedArgs);
});
});

describe('When multi tenant env', () => {
beforeEach(() => {
isMultiDataTenant.mockReturnValueOnce(true);
triggerSubmit();
});

it('should submit form data', () => {
const expectedArgs = [
{
fulfillmentPreference: fulfillmentTypeMap.HOLD_SHELF,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
pickupServicePointId: submitData.pickupServicePointId,
itemId: submitData.itemId,
requestExpirationDate,
},
requester.personal,
];
const requestForm = screen.getByTestId(testIds.requestForm);
it('should submit form data', () => {
const expectedArg = {
holdingsRecordId: selectedItem.holdingsRecordId,
fulfillmentPreference: fulfillmentTypeMap.HOLD_SHELF,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.ITEM,
pickupServicePointId: submitData.pickupServicePointId,
item: submitData.item,
itemId: submitData.itemId,
requestExpirationDate,
};
const requestForm = screen.getByTestId(testIds.requestForm);

fireEvent.submit(requestForm);
fireEvent.submit(requestForm);

expect(defaultProps.onSubmit).toHaveBeenCalledWith(...expectedArgs);
});
expect(defaultProps.onSubmit).toHaveBeenCalledWith(expectedArg);
});
});

Expand All @@ -211,7 +165,6 @@ describe('RequestFormContainer', () => {
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
createTitleLevelRequest: true,
requester,
};
const props = {
...defaultProps,
Expand Down Expand Up @@ -256,21 +209,17 @@ describe('RequestFormContainer', () => {
});

it('should submit form data', () => {
const expectedArgs = [
{
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: selectedInstance.id,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
requester,
},
requester.personal,
];
const expectedArg = {
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: selectedInstance.id,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
};
const requestForm = screen.getByTestId(testIds.requestForm);

fireEvent.submit(requestForm);

expect(defaultProps.onSubmit).toHaveBeenCalledWith(...expectedArgs);
expect(defaultProps.onSubmit).toHaveBeenCalledWith(expectedArg);
});
});

Expand All @@ -280,7 +229,6 @@ describe('RequestFormContainer', () => {
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
createTitleLevelRequest: true,
requester,
};
const overridePatronBlocksLabel = 'Override patron blocks';

Expand Down Expand Up @@ -315,26 +263,22 @@ describe('RequestFormContainer', () => {
});

it('should submit form data', () => {
const expectedArgs = [
{
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
requestProcessingParameters: {
overrideBlocks: {
patronBlock: {},
},
const expectedArg = {
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
requestProcessingParameters: {
overrideBlocks: {
patronBlock: {},
},
requester,
},
requester.personal,
];
};
const requestForm = screen.getByTestId(testIds.requestForm);

fireEvent.submit(requestForm);

expect(defaultProps.onSubmit).toHaveBeenCalledWith(...expectedArgs);
expect(defaultProps.onSubmit).toHaveBeenCalledWith(expectedArg);
});
});

Expand Down Expand Up @@ -405,7 +349,6 @@ describe('RequestFormContainer', () => {
createTitleLevelRequest: true,
holdShelfExpirationDate: new Date().toDateString(),
holdShelfExpirationTime,
requester,
};

beforeEach(() => {
Expand All @@ -426,23 +369,19 @@ describe('RequestFormContainer', () => {
});

it('should submit form data', () => {
const expectedArgs = [
{
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
holdShelfExpirationTime,
holdShelfExpirationDate: expect.any(String),
requester,
},
requester.personal,
];
const expectedArg = {
fulfillmentPreference: fulfillmentTypeMap.DELIVERY,
instanceId: defaultProps.request.instanceId,
requestLevel: REQUEST_LEVEL_TYPES.TITLE,
deliveryAddressTypeId: submitData.deliveryAddressTypeId,
holdShelfExpirationTime,
holdShelfExpirationDate: expect.any(String),
};
const requestForm = screen.getByTestId(testIds.requestForm);

fireEvent.submit(requestForm);

expect(defaultProps.onSubmit).toHaveBeenCalledWith(...expectedArgs);
expect(defaultProps.onSubmit).toHaveBeenCalledWith(expectedArg);
});
});
});
Expand Down
Loading

0 comments on commit 1cbc977

Please sign in to comment.