Unit test AppSync VTL resolvers, with popular frameworks such as Jest.
yarn add appsync-template-tester --dev
import Parser from 'appsync-template-tester';
import { readFileSync } from 'fs';
import { join } from 'path';
// Load from a file (if not in a string already)
const templateFilePath = join(__dirname, './pathToFile.vtl');
const template = readFileSync(templateFilePath);
// Create the resolver
const parser = new Parser(template);
test('Test the resolver', () => {
// The Appsync Context (ctx) object
const context = {
// For example with a dynamoDB response resolver:
result: {
id: 'testId',
// ...
},
};
// parser.resolve() automatically typecasts (note JSON becomes a JS object for ease of testing)
const response = parser.resolve(context);
// For convenience, the response is returned as a JS object rather than JSON
expect(response.id).toBe('testId');
});
This module supports all the provided core, map & time $util methods, and most of the dynamodb methods. The underlying methods can be seen in the Resolver Mapping Template Utility Reference docs.
Note: The errors list is also not returned (but $util.error will throw an error).
This module is contributed by the team at Skyhook.