sls-jest
  • Getting Started
  • Core Concepts
  • AWS Credentials
  • Matchers
    • DynamoDB
    • S3
    • AppSync
    • EventBridge
  • Spies
    • Setup
    • EventBridge
  • Utilities
    • DynamoDB
  • Cookbooks
    • Github Actions
    • CDK
Powered by GitBook
On this page
  • Helper Functions
  • appSyncResolver(input: AppSyncResolverInput)
  • appSyncMappingTemplate(input: AppSyncMappingTemplateInput)
  • Matchers
  • toEvaluateTo<E>(expected: E)
  • toEvaluateToSnapshot(propertiesOrHint?: string, hint?: string)
  • toEvaluateToInlineSnapshot(propertiesOrHint?: string, hint?: string)

Was this helpful?

Edit on GitHub
  1. Matchers

AppSync

PreviousS3NextEventBridge

Last updated 1 year ago

Was this helpful?

A collection of matchers to test AWS AppSync mapping templates and JS resolvers.

Helper Functions

appSyncResolver(input: AppSyncResolverInput)

Use the appSyncResolver helper function to test JS resolvers.

  • code: The path to a file containing an APPSYNC_JS resolver code. The path can either be absolute, or relative to the working directory (process.cwd()).

  • function: The function to test. Must be request or response.

  • context: The to be passed to the function

appSyncMappingTemplate(input: AppSyncMappingTemplateInput)

Use the appSyncMappingTemplate helper function to test VTL mapping templates.

  • template: The path to a file containing a mapping template. The path can either be absolute, or relative to the working directory (process.cwd()).

  • context: The to be injected into the template

Matchers

toEvaluateTo<E>(expected: E)

Asserts that a mapping template or resolver evaluates to a given object for a given context.

// matching as a string
await expect(
  appSyncResolver({
    code: __dirname + '/resolver.js',
    function: 'request',
    context: {
      arguments: {
        id: '123',
      },
    },
  }),
).toEvaluateTo<DynamoDBGetItemRequest>({
  operation: 'GetItem',
  key: {
    pk: { S: '123' },
  },
});

toEvaluateToSnapshot(propertiesOrHint?: string, hint?: string)

await expect(
  appSyncMappingTemplate({
    template: fs.readFileSync('tempalte.vtl', { encoding: 'utf8' }),
    context: {
      arguments: {
        id: '123',
      },
    },
  }),
).toEvaluateToSnapshot();

toEvaluateToInlineSnapshot(propertiesOrHint?: string, hint?: string)

await expect(
  appSyncMappingTemplate({
    template: fs.readFileSync('tempalte.vtl', { encoding: 'utf8' }),
    context: {
      arguments: {
        id: '789',
      },
    },
  }),
).toEvaluateToInlineSnapshot(`
  Object {
    "key": Object {
      "pk": Object {
        "S": "789",
      },
    },
    "operation": "GetItem",
    "version": "2017-02-28",
  }
`);

Asserts that the evaluated template matches the most recent snapshot. It works similarly to jest's .

Asserts that the evaluated template matches the most recent snapshot. It works similarly to jest's .

context object
context object
toMatchSnapshot
toMatchInlineSnapshot