@byaga/cdk-patterns 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/jest.config.js ADDED
@@ -0,0 +1,16 @@
1
+ module.exports = {
2
+ preset: 'ts-jest',
3
+ testEnvironment: 'node',
4
+ reporters: [
5
+ "default",
6
+ ["jest-junit", {
7
+ outputDirectory: './test-results/junit',
8
+ outputName: 'junit.xml',
9
+ }],
10
+ ["jest-html-reporters", {
11
+ publicPath: './test-results/html',
12
+ filename: 'index.html',
13
+ expand: true
14
+ }]
15
+ ]
16
+ };
@@ -8,7 +8,7 @@ function applyHoneycombToLambda(stack, props) {
8
8
  if (!honeyCombLayer)
9
9
  honeyCombLayer = aws_lambda_1.LayerVersion.fromLayerVersionArn(stack, stack.genId('hc-layer'), `arn:aws:lambda:${stack.region}:702835727665:layer:honeycomb-lambda-extension-x86_64-v11-1-1:1`);
10
10
  const layers = props.layers ? [...props.layers] : [];
11
- const environment = props.environment || {};
11
+ const environment = { ...props.environment };
12
12
  const options = { parameterGroup: stack.project };
13
13
  layers.push(honeyCombLayer);
14
14
  environment.LIBHONEY_API_KEY = new SsmParameter_1.SsmParameter(stack, `/honeycomb/api-key`, options).stringValue;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ts_mockito_1 = require("ts-mockito");
4
+ const DeployStack_1 = require("../DeployStack");
5
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
6
+ const apply_honeycomb_to_lambda_1 = require("./apply-honeycomb-to-lambda");
7
+ let mockStack;
8
+ let mockLayer;
9
+ let fromLayerVersionArn;
10
+ jest.mock('../SsmParameter', () => {
11
+ const { SsmParameter } = jest.requireActual('../SsmParameter');
12
+ class MockSsmParameter extends SsmParameter {
13
+ static mocks = {
14
+ stringValue: jest.fn()
15
+ };
16
+ get stringValue() {
17
+ return MockSsmParameter.mocks.stringValue();
18
+ }
19
+ }
20
+ MockSsmParameter.mocks.stringValue.mockReturnValue('test-value');
21
+ return { SsmParameter: MockSsmParameter };
22
+ });
23
+ const existingLayer = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(aws_lambda_1.LayerVersion));
24
+ const props = {
25
+ runtime: aws_lambda_1.Runtime.NODEJS_18_X,
26
+ handler: 'index.handler',
27
+ code: aws_lambda_1.Code.fromInline('exports.handler = function(event, ctx, cb) { return cb(null, "hi"); }'),
28
+ environment: { existingVar: 'existingValue' },
29
+ layers: [existingLayer]
30
+ };
31
+ // Mock the wrapper object instead of the LayerVersion class
32
+ beforeEach(() => {
33
+ mockStack = (0, ts_mockito_1.mock)(DeployStack_1.DeployStack);
34
+ mockLayer = (0, ts_mockito_1.mock)(aws_lambda_1.LayerVersion);
35
+ fromLayerVersionArn = jest.spyOn(aws_lambda_1.LayerVersion, 'fromLayerVersionArn').mockReturnValue(mockLayer);
36
+ });
37
+ afterEach(() => {
38
+ fromLayerVersionArn.mockRestore();
39
+ });
40
+ it('should add honeycomb layer to function props', () => {
41
+ const result = (0, apply_honeycomb_to_lambda_1.applyHoneycombToLambda)((0, ts_mockito_1.instance)(mockStack), props);
42
+ expect(result.layers).toContain(mockLayer);
43
+ });
44
+ it('should add honeycomb environment variables to function props', () => {
45
+ const result = (0, apply_honeycomb_to_lambda_1.applyHoneycombToLambda)((0, ts_mockito_1.instance)(mockStack), props);
46
+ expect(result.environment).toEqual(expect.objectContaining({
47
+ LIBHONEY_API_KEY: 'test-value',
48
+ LIBHONEY_DATASET: 'test-value',
49
+ LOGS_API_DISABLE_PLATFORM_MSGS: 'true'
50
+ }));
51
+ });
52
+ it('should not overwrite existing layers in function props', () => {
53
+ const result = (0, apply_honeycomb_to_lambda_1.applyHoneycombToLambda)((0, ts_mockito_1.instance)(mockStack), props);
54
+ expect(result.layers).toContain(existingLayer);
55
+ });
56
+ it('should not overwrite existing environment variables in function props', () => {
57
+ const result = (0, apply_honeycomb_to_lambda_1.applyHoneycombToLambda)((0, ts_mockito_1.instance)(mockStack), props);
58
+ expect(result.environment).toEqual(expect.objectContaining({
59
+ existingVar: 'existingValue'
60
+ }));
61
+ });
@@ -46,7 +46,7 @@ exports.defaultIgnore = {
46
46
  p.name !== 'package-lock.json';
47
47
  },
48
48
  childrenIncluded: (p) => {
49
- return p.name === "node_modules";
49
+ return p.name !== "node_modules";
50
50
  }
51
51
  };
52
52
  function buildNodeSource(type, id, options = {}) {
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@byaga/cdk-patterns",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "description": "Collection of common patterns used when making AWS CloudFormation templates using CDK",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "scripts": {
8
- "build": "tsc"
8
+ "build": "tsc",
9
+ "test": "jest"
9
10
  },
10
11
  "keywords": [
11
12
  "CDK",
@@ -22,7 +23,12 @@
22
23
  "fs-extra": "^11.1.1"
23
24
  },
24
25
  "devDependencies": {
26
+ "@types/jest": "^29.5.11",
25
27
  "@types/node": "^20.8.10",
28
+ "jest-html-reporters": "^3.1.7",
29
+ "jest-junit": "^16.0.0",
30
+ "ts-jest": "^29.1.1",
31
+ "ts-mockito": "^2.6.1",
26
32
  "typescript": "^5.2.2"
27
33
  }
28
34
  }
@@ -0,0 +1 @@
1
+ <!doctype html><html><head><meta charset="utf-8"><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><meta name="keywords" contect="jest, reporters"><meta name="author" contect="hazyzh"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,minimum-scale=1,maximum-scale=1"><link rel="shortcut icon" href="data:image/png;base64,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"></head><title>Report</title><body><div id="app"></div><script defer="defer" src="./jest-html-reporters-attach/index/index.js"></script></body></html>