ToolJet/plugins/packages/googlesheets/__tests__/googlesheets.test.js

74 lines
2.1 KiB
JavaScript

'use strict';
const { makeRequestBodyToBatchUpdate } = require('../lib/operations');
describe('googlesheets', () => {
it('should generate the request body for update operation', () => {
const requestBody = {
caseOne: { Gender: 'Female' },
caseTwo: { extra: '0 points' },
caseThree: { Gender: 'Female', extra: '0 points' },
};
const filterCondition = { key: 'Student Name', value: 'Anna' };
const filterOperator = '===';
const data = [
['ID', '1', '2'],
['Student Name', 'John', 'Anna'],
['Major', 'Science', 'English'],
[],
['Gender', 'Male', 'Female'],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
['extra', 'extra-update', '0 points'],
];
const queryOptionsOne = { requestBody: requestBody.caseOne, filterCondition, filterOperator, data };
const queryOptionsTwo = { requestBody: requestBody.caseTwo, filterCondition, filterOperator, data };
const queryOptionsThree = { requestBody: requestBody.caseThree, filterCondition, filterOperator, data };
const expectedBodyForCaseOne = makeRequestBodyToBatchUpdate(
queryOptionsOne.requestBody,
queryOptionsOne.filterCondition,
queryOptionsOne.filterOperator,
queryOptionsOne.data
);
const expectedBodyForCaseTwo = makeRequestBodyToBatchUpdate(
queryOptionsTwo.requestBody,
queryOptionsOne.filterCondition,
queryOptionsOne.filterOperator,
queryOptionsOne.data
);
const expectedBodyForCaseThree = makeRequestBodyToBatchUpdate(
queryOptionsThree.requestBody,
queryOptionsOne.filterCondition,
queryOptionsOne.filterOperator,
queryOptionsOne.data
);
expect(expectedBodyForCaseOne).toEqual([{ cellValue: 'Female', cellIndex: 'E3' }]);
expect(expectedBodyForCaseTwo).toEqual([{ cellValue: '0 points', cellIndex: 'AB3' }]);
expect(expectedBodyForCaseThree).toEqual([
{ cellValue: 'Female', cellIndex: 'E3' },
{ cellValue: '0 points', cellIndex: 'AB3' },
]);
});
});