UNPKG

@erikmuir/lambda-authorizer

Version:

AWS API Gateway Custom Lambda Authorizer for NodeJS

56 lines (45 loc) 1.78 kB
const PolicyStatement = require('../../src/models/PolicyStatement'); const Effect = require('../../src/models/Effect'); const ApiGatewayArn = require('../../src/models/ApiGatewayArn'); describe('PolicyStatement', () => { describe('constructor', () => { const expectedAction = 'execute-api:Invoke'; describe('when params provided', () => { const effect = Effect.allow; const stringArn = 'arn:partition:service:region:aws-account-id:rest-api-id/stage/verb/path/to/resource'; const arn = ApiGatewayArn.parse(stringArn); const actual = new PolicyStatement({ effect, arn }); test('sets Effect', () => { expect(actual.Effect).toBe(Effect.allow); }); test('sets Resource', () => { expect(actual.Resource).toBeDefined(); expect(actual.Resource.length).toBe(1); expect(actual.Resource[0]).toBe(stringArn); }); test('sets Action to default value', () => { expect(actual.Action).toBeDefined(); expect(actual.Action.length).toBe(1); expect(actual.Action[0]).toBe(expectedAction); }); }); describe('when no params provided', () => { const actual = new PolicyStatement(); test('does not blow up', () => { expect(actual).toBeDefined(); }); test('does not set Effect', () => { expect(actual.Effect).not.toBeDefined(); }); test('sets Resource to empty list', () => { expect(actual.Resource).toBeDefined(); expect(actual.Resource.length).toBe(0); }); test('sets Action to default value', () => { expect(actual.Action).toBeDefined(); expect(actual.Action.length).toBe(1); expect(actual.Action[0]).toBe(expectedAction); }); }); }); });