// Import putItemHandler function from put-item.mjs
import { putItemHandler } from '../../../src/handlers/put-item.mjs';
// Import dynamodb from aws-sdk
import { DynamoDBDocumentClient, PutCommand } from '@aws-sdk/lib-dynamodb';
import { mockClient } from "aws-sdk-client-mock";
// This includes all tests for putItemHandler()
describe('Test putItemHandler', function () {
const ddbMock = mockClient(DynamoDBDocumentClient);
beforeEach(() => {
ddbMock.reset();
});
// This test invokes putItemHandler() and compare the result
it('should add id to the table', async () => {
const returnedItem = { id: 'id1', name: 'name1' };
// Return the specified value whenever the spied put function is called
ddbMock.on(PutCommand).resolves({
returnedItem
});
const event = {
httpMethod: 'POST',
body: '{"id": "id1","name": "name1"}'
};
// Invoke putItemHandler()
const result = await putItemHandler(event);
const expectedResult = {
statusCode: 200,
body: JSON.stringify(returnedItem)
};
// Compare the result with the expected result
expect(result).toEqual(expectedResult);
});
});