projen 0.34.25 → 0.35.0

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.
Files changed (106) hide show
  1. package/.jsii +276 -20
  2. package/API.md +83 -0
  3. package/docs/awscdk.md +22 -25
  4. package/lib/awscdk/auto-discover.d.ts +8 -0
  5. package/lib/awscdk/auto-discover.js +17 -2
  6. package/lib/awscdk/cdk-config.d.ts +14 -0
  7. package/lib/awscdk/cdk-config.js +7 -3
  8. package/lib/awscdk/cdk-tasks.js +1 -1
  9. package/lib/awscdk/index.d.ts +1 -0
  10. package/lib/awscdk/index.js +2 -1
  11. package/lib/awscdk/integration-test.d.ts +77 -0
  12. package/lib/awscdk/integration-test.js +100 -0
  13. package/lib/awscdk/internal.d.ts +4 -0
  14. package/lib/awscdk/internal.js +6 -2
  15. package/lib/awscdk/java-app.js +1 -1
  16. package/lib/awscdk/lambda-function.js +2 -2
  17. package/lib/awscdk-app-ts.js +17 -2
  18. package/lib/awscdk-construct.js +4 -3
  19. package/lib/cdk8s-app-ts.js +1 -1
  20. package/lib/cdk8s-construct.js +1 -1
  21. package/lib/cdktf-construct.js +1 -1
  22. package/lib/cli/synth.js +6 -2
  23. package/lib/component.js +1 -1
  24. package/lib/construct-lib.js +1 -1
  25. package/lib/deps/dependencies.js +1 -1
  26. package/lib/dev-env.js +1 -1
  27. package/lib/docker-compose.js +2 -2
  28. package/lib/eslint.js +1 -1
  29. package/lib/file.js +1 -1
  30. package/lib/git/gitattributes.js +1 -1
  31. package/lib/github/auto-approve.js +1 -1
  32. package/lib/github/auto-merge.js +1 -1
  33. package/lib/github/dependabot.js +1 -1
  34. package/lib/github/github.js +1 -1
  35. package/lib/github/mergify.js +1 -1
  36. package/lib/github/pr-template.js +1 -1
  37. package/lib/github/pull-request-lint.js +1 -1
  38. package/lib/github/stale.js +1 -1
  39. package/lib/github/task-workflow.js +1 -1
  40. package/lib/github/workflows.js +1 -1
  41. package/lib/gitpod.js +1 -1
  42. package/lib/ignore-file.js +1 -1
  43. package/lib/ini.js +1 -1
  44. package/lib/java/java-project.js +1 -1
  45. package/lib/java/junit.js +1 -1
  46. package/lib/java/maven-compile.js +1 -1
  47. package/lib/java/maven-packaging.js +1 -1
  48. package/lib/java/maven-sample.js +1 -1
  49. package/lib/java/pom.js +1 -1
  50. package/lib/java/projenrc.js +1 -1
  51. package/lib/javascript/bundler.js +1 -1
  52. package/lib/javascript/npm-config.js +1 -1
  53. package/lib/javascript/projenrc.js +1 -1
  54. package/lib/jest.js +1 -1
  55. package/lib/jsii-project.js +1 -1
  56. package/lib/json/projenrc.js +1 -1
  57. package/lib/json.js +1 -1
  58. package/lib/license.js +1 -1
  59. package/lib/logger.js +1 -1
  60. package/lib/makefile.js +1 -1
  61. package/lib/node-package.js +1 -1
  62. package/lib/node-project.js +1 -1
  63. package/lib/object-file.js +1 -1
  64. package/lib/project-build.js +1 -1
  65. package/lib/project.js +2 -2
  66. package/lib/projects.js +1 -1
  67. package/lib/python/pip.js +1 -1
  68. package/lib/python/poetry.js +2 -2
  69. package/lib/python/projenrc.js +1 -1
  70. package/lib/python/pytest.js +1 -1
  71. package/lib/python/python-project.js +1 -1
  72. package/lib/python/python-sample.js +1 -1
  73. package/lib/python/requirements-file.js +1 -1
  74. package/lib/python/setuppy.js +1 -1
  75. package/lib/python/setuptools.js +1 -1
  76. package/lib/python/venv.js +1 -1
  77. package/lib/readme.js +1 -1
  78. package/lib/release/publisher.js +1 -1
  79. package/lib/release/release-trigger.js +1 -1
  80. package/lib/release/release.js +1 -1
  81. package/lib/sample-file.js +2 -2
  82. package/lib/semver.js +1 -1
  83. package/lib/source-code.js +1 -1
  84. package/lib/tasks/runtime.js +1 -1
  85. package/lib/tasks/task.js +1 -1
  86. package/lib/tasks/tasks.js +1 -1
  87. package/lib/textfile.js +1 -1
  88. package/lib/toml.js +1 -1
  89. package/lib/typescript/projenrc.js +1 -1
  90. package/lib/typescript-config.js +1 -1
  91. package/lib/typescript.js +3 -3
  92. package/lib/upgrade-dependencies.js +2 -2
  93. package/lib/version.js +1 -1
  94. package/lib/vscode/devcontainer.js +1 -1
  95. package/lib/vscode/launch-config.js +1 -1
  96. package/lib/vscode/vscode.js +1 -1
  97. package/lib/web/next.js +3 -3
  98. package/lib/web/postcss.js +1 -1
  99. package/lib/web/react.js +4 -4
  100. package/lib/web/tailwind.js +1 -1
  101. package/lib/xmlfile.js +1 -1
  102. package/lib/yaml.js +1 -1
  103. package/node_modules/xmlbuilder2/node_modules/@types/node/README.md +1 -1
  104. package/node_modules/xmlbuilder2/node_modules/@types/node/package.json +2 -2
  105. package/node_modules/xmlbuilder2/node_modules/@types/node/stream/web.d.ts +385 -0
  106. package/package.json +6 -3
package/.jsii CHANGED
@@ -245,7 +245,7 @@
245
245
  },
246
246
  "locationInModule": {
247
247
  "filename": "src/awscdk-construct.ts",
248
- "line": 177
248
+ "line": 178
249
249
  },
250
250
  "name": "addCdkDependencies",
251
251
  "parameters": [
@@ -269,7 +269,7 @@
269
269
  },
270
270
  "locationInModule": {
271
271
  "filename": "src/awscdk-construct.ts",
272
- "line": 193
272
+ "line": 194
273
273
  },
274
274
  "name": "addCdkTestDependencies",
275
275
  "parameters": [
@@ -327,7 +327,7 @@
327
327
  "immutable": true,
328
328
  "locationInModule": {
329
329
  "filename": "src/awscdk-construct.ts",
330
- "line": 160
330
+ "line": 161
331
331
  },
332
332
  "name": "version",
333
333
  "type": {
@@ -580,7 +580,7 @@
580
580
  },
581
581
  "locationInModule": {
582
582
  "filename": "src/awscdk-app-ts.ts",
583
- "line": 166
583
+ "line": 181
584
584
  },
585
585
  "name": "addCdkDependency",
586
586
  "parameters": [
@@ -1374,7 +1374,7 @@
1374
1374
  "kind": "class",
1375
1375
  "locationInModule": {
1376
1376
  "filename": "src/awscdk-construct.ts",
1377
- "line": 206
1377
+ "line": 207
1378
1378
  },
1379
1379
  "name": "ConstructLibraryAws",
1380
1380
  "symbolId": "src/awscdk-construct:ConstructLibraryAws"
@@ -1393,7 +1393,7 @@
1393
1393
  "kind": "interface",
1394
1394
  "locationInModule": {
1395
1395
  "filename": "src/awscdk-construct.ts",
1396
- "line": 203
1396
+ "line": 204
1397
1397
  },
1398
1398
  "name": "ConstructLibraryAwsOptions",
1399
1399
  "symbolId": "src/awscdk-construct:ConstructLibraryAwsOptions"
@@ -17165,7 +17165,7 @@
17165
17165
  "kind": "enum",
17166
17166
  "locationInModule": {
17167
17167
  "filename": "src/awscdk/cdk-config.ts",
17168
- "line": 97
17168
+ "line": 115
17169
17169
  },
17170
17170
  "members": [
17171
17171
  {
@@ -17209,7 +17209,7 @@
17209
17209
  },
17210
17210
  "locationInModule": {
17211
17211
  "filename": "src/awscdk/auto-discover.ts",
17212
- "line": 30
17212
+ "line": 36
17213
17213
  },
17214
17214
  "parameters": [
17215
17215
  {
@@ -17229,7 +17229,7 @@
17229
17229
  "kind": "class",
17230
17230
  "locationInModule": {
17231
17231
  "filename": "src/awscdk/auto-discover.ts",
17232
- "line": 27
17232
+ "line": 33
17233
17233
  },
17234
17234
  "name": "AutoDiscover",
17235
17235
  "namespace": "awscdk",
@@ -17246,7 +17246,7 @@
17246
17246
  "kind": "interface",
17247
17247
  "locationInModule": {
17248
17248
  "filename": "src/awscdk/auto-discover.ts",
17249
- "line": 11
17249
+ "line": 12
17250
17250
  },
17251
17251
  "name": "AutoDiscoverOptions",
17252
17252
  "namespace": "awscdk",
@@ -17260,13 +17260,29 @@
17260
17260
  "immutable": true,
17261
17261
  "locationInModule": {
17262
17262
  "filename": "src/awscdk/auto-discover.ts",
17263
- "line": 20
17263
+ "line": 21
17264
17264
  },
17265
17265
  "name": "srcdir",
17266
17266
  "type": {
17267
17267
  "primitive": "string"
17268
17268
  }
17269
17269
  },
17270
+ {
17271
+ "abstract": true,
17272
+ "docs": {
17273
+ "stability": "experimental",
17274
+ "summary": "Test source tree."
17275
+ },
17276
+ "immutable": true,
17277
+ "locationInModule": {
17278
+ "filename": "src/awscdk/auto-discover.ts",
17279
+ "line": 26
17280
+ },
17281
+ "name": "testdir",
17282
+ "type": {
17283
+ "primitive": "string"
17284
+ }
17285
+ },
17270
17286
  {
17271
17287
  "abstract": true,
17272
17288
  "docs": {
@@ -17276,7 +17292,7 @@
17276
17292
  "immutable": true,
17277
17293
  "locationInModule": {
17278
17294
  "filename": "src/awscdk/auto-discover.ts",
17279
- "line": 15
17295
+ "line": 16
17280
17296
  },
17281
17297
  "name": "lambdaOptions",
17282
17298
  "optional": true,
@@ -17539,7 +17555,7 @@
17539
17555
  },
17540
17556
  "locationInModule": {
17541
17557
  "filename": "src/awscdk/cdk-config.ts",
17542
- "line": 66
17558
+ "line": 80
17543
17559
  },
17544
17560
  "parameters": [
17545
17561
  {
@@ -17559,7 +17575,7 @@
17559
17575
  "kind": "class",
17560
17576
  "locationInModule": {
17561
17577
  "filename": "src/awscdk/cdk-config.ts",
17562
- "line": 54
17578
+ "line": 68
17563
17579
  },
17564
17580
  "name": "CdkConfig",
17565
17581
  "namespace": "awscdk",
@@ -17572,7 +17588,7 @@
17572
17588
  "immutable": true,
17573
17589
  "locationInModule": {
17574
17590
  "filename": "src/awscdk/cdk-config.ts",
17575
- "line": 64
17591
+ "line": 78
17576
17592
  },
17577
17593
  "name": "cdkout",
17578
17594
  "type": {
@@ -17587,7 +17603,7 @@
17587
17603
  "immutable": true,
17588
17604
  "locationInModule": {
17589
17605
  "filename": "src/awscdk/cdk-config.ts",
17590
- "line": 59
17606
+ "line": 73
17591
17607
  },
17592
17608
  "name": "json",
17593
17609
  "type": {
@@ -17689,6 +17705,52 @@
17689
17705
  "type": {
17690
17706
  "fqn": "projen.awscdk.ApprovalLevel"
17691
17707
  }
17708
+ },
17709
+ {
17710
+ "abstract": true,
17711
+ "docs": {
17712
+ "default": "[]",
17713
+ "stability": "experimental",
17714
+ "summary": "Glob patterns to exclude from `cdk watch`."
17715
+ },
17716
+ "immutable": true,
17717
+ "locationInModule": {
17718
+ "filename": "src/awscdk/cdk-config.ts",
17719
+ "line": 51
17720
+ },
17721
+ "name": "watchExcludes",
17722
+ "optional": true,
17723
+ "type": {
17724
+ "collection": {
17725
+ "elementtype": {
17726
+ "primitive": "string"
17727
+ },
17728
+ "kind": "array"
17729
+ }
17730
+ }
17731
+ },
17732
+ {
17733
+ "abstract": true,
17734
+ "docs": {
17735
+ "default": "[]",
17736
+ "stability": "experimental",
17737
+ "summary": "Glob patterns to include in `cdk watch`."
17738
+ },
17739
+ "immutable": true,
17740
+ "locationInModule": {
17741
+ "filename": "src/awscdk/cdk-config.ts",
17742
+ "line": 44
17743
+ },
17744
+ "name": "watchIncludes",
17745
+ "optional": true,
17746
+ "type": {
17747
+ "collection": {
17748
+ "elementtype": {
17749
+ "primitive": "string"
17750
+ },
17751
+ "kind": "array"
17752
+ }
17753
+ }
17692
17754
  }
17693
17755
  ],
17694
17756
  "symbolId": "src/awscdk/cdk-config:CdkConfigCommonOptions"
@@ -17707,7 +17769,7 @@
17707
17769
  "kind": "interface",
17708
17770
  "locationInModule": {
17709
17771
  "filename": "src/awscdk/cdk-config.ts",
17710
- "line": 43
17772
+ "line": 57
17711
17773
  },
17712
17774
  "name": "CdkConfigOptions",
17713
17775
  "namespace": "awscdk",
@@ -17721,7 +17783,7 @@
17721
17783
  "immutable": true,
17722
17784
  "locationInModule": {
17723
17785
  "filename": "src/awscdk/cdk-config.ts",
17724
- "line": 48
17786
+ "line": 62
17725
17787
  },
17726
17788
  "name": "app",
17727
17789
  "type": {
@@ -17827,6 +17889,200 @@
17827
17889
  ],
17828
17890
  "symbolId": "src/awscdk/cdk-tasks:CdkTasks"
17829
17891
  },
17892
+ "projen.awscdk.IntegrationTest": {
17893
+ "assembly": "projen",
17894
+ "base": "projen.Component",
17895
+ "docs": {
17896
+ "stability": "experimental",
17897
+ "summary": "Cloud integration tests."
17898
+ },
17899
+ "fqn": "projen.awscdk.IntegrationTest",
17900
+ "initializer": {
17901
+ "docs": {
17902
+ "stability": "experimental"
17903
+ },
17904
+ "locationInModule": {
17905
+ "filename": "src/awscdk/integration-test.ts",
17906
+ "line": 60
17907
+ },
17908
+ "parameters": [
17909
+ {
17910
+ "name": "project",
17911
+ "type": {
17912
+ "fqn": "projen.Project"
17913
+ }
17914
+ },
17915
+ {
17916
+ "name": "options",
17917
+ "type": {
17918
+ "fqn": "projen.awscdk.IntegrationTestOptions"
17919
+ }
17920
+ }
17921
+ ]
17922
+ },
17923
+ "kind": "class",
17924
+ "locationInModule": {
17925
+ "filename": "src/awscdk/integration-test.ts",
17926
+ "line": 34
17927
+ },
17928
+ "name": "IntegrationTest",
17929
+ "namespace": "awscdk",
17930
+ "properties": [
17931
+ {
17932
+ "docs": {
17933
+ "stability": "experimental",
17934
+ "summary": "Synthesizes the integration test and compares against a local copy (runs during build)."
17935
+ },
17936
+ "immutable": true,
17937
+ "locationInModule": {
17938
+ "filename": "src/awscdk/integration-test.ts",
17939
+ "line": 48
17940
+ },
17941
+ "name": "assertTask",
17942
+ "type": {
17943
+ "fqn": "projen.tasks.Task"
17944
+ }
17945
+ },
17946
+ {
17947
+ "docs": {
17948
+ "stability": "experimental",
17949
+ "summary": "Deploy the integration test and update the snapshot upon success."
17950
+ },
17951
+ "immutable": true,
17952
+ "locationInModule": {
17953
+ "filename": "src/awscdk/integration-test.ts",
17954
+ "line": 38
17955
+ },
17956
+ "name": "deployTask",
17957
+ "type": {
17958
+ "fqn": "projen.tasks.Task"
17959
+ }
17960
+ },
17961
+ {
17962
+ "docs": {
17963
+ "stability": "experimental",
17964
+ "summary": "Destroys a deployed stack."
17965
+ },
17966
+ "immutable": true,
17967
+ "locationInModule": {
17968
+ "filename": "src/awscdk/integration-test.ts",
17969
+ "line": 43
17970
+ },
17971
+ "name": "destroyTask",
17972
+ "type": {
17973
+ "fqn": "projen.tasks.Task"
17974
+ }
17975
+ },
17976
+ {
17977
+ "docs": {
17978
+ "stability": "experimental",
17979
+ "summary": "Just update snapshot (without deployment)."
17980
+ },
17981
+ "immutable": true,
17982
+ "locationInModule": {
17983
+ "filename": "src/awscdk/integration-test.ts",
17984
+ "line": 53
17985
+ },
17986
+ "name": "snapshotTask",
17987
+ "type": {
17988
+ "fqn": "projen.tasks.Task"
17989
+ }
17990
+ },
17991
+ {
17992
+ "docs": {
17993
+ "stability": "experimental",
17994
+ "summary": "The watch task."
17995
+ },
17996
+ "immutable": true,
17997
+ "locationInModule": {
17998
+ "filename": "src/awscdk/integration-test.ts",
17999
+ "line": 58
18000
+ },
18001
+ "name": "watchTask",
18002
+ "type": {
18003
+ "fqn": "projen.tasks.Task"
18004
+ }
18005
+ }
18006
+ ],
18007
+ "symbolId": "src/awscdk/integration-test:IntegrationTest"
18008
+ },
18009
+ "projen.awscdk.IntegrationTestCommonOptions": {
18010
+ "assembly": "projen",
18011
+ "datatype": true,
18012
+ "docs": {
18013
+ "stability": "experimental"
18014
+ },
18015
+ "fqn": "projen.awscdk.IntegrationTestCommonOptions",
18016
+ "kind": "interface",
18017
+ "locationInModule": {
18018
+ "filename": "src/awscdk/integration-test.ts",
18019
+ "line": 7
18020
+ },
18021
+ "name": "IntegrationTestCommonOptions",
18022
+ "namespace": "awscdk",
18023
+ "properties": [
18024
+ {
18025
+ "abstract": true,
18026
+ "docs": {
18027
+ "default": "true",
18028
+ "remarks": "If disabled, leaves the\napp deployed in the dev account.",
18029
+ "stability": "experimental",
18030
+ "summary": "Destroy the test app after a successful deployment."
18031
+ },
18032
+ "immutable": true,
18033
+ "locationInModule": {
18034
+ "filename": "src/awscdk/integration-test.ts",
18035
+ "line": 13
18036
+ },
18037
+ "name": "destroyAfterDeploy",
18038
+ "optional": true,
18039
+ "type": {
18040
+ "primitive": "boolean"
18041
+ }
18042
+ }
18043
+ ],
18044
+ "symbolId": "src/awscdk/integration-test:IntegrationTestCommonOptions"
18045
+ },
18046
+ "projen.awscdk.IntegrationTestOptions": {
18047
+ "assembly": "projen",
18048
+ "datatype": true,
18049
+ "docs": {
18050
+ "stability": "experimental",
18051
+ "summary": "Options for `IntegrationTest`."
18052
+ },
18053
+ "fqn": "projen.awscdk.IntegrationTestOptions",
18054
+ "interfaces": [
18055
+ "projen.awscdk.IntegrationTestCommonOptions"
18056
+ ],
18057
+ "kind": "interface",
18058
+ "locationInModule": {
18059
+ "filename": "src/awscdk/integration-test.ts",
18060
+ "line": 19
18061
+ },
18062
+ "name": "IntegrationTestOptions",
18063
+ "namespace": "awscdk",
18064
+ "properties": [
18065
+ {
18066
+ "abstract": true,
18067
+ "docs": {
18068
+ "example": "\"test/subdir/foo.integ.ts\"",
18069
+ "remarks": "This is relative to the root directory of the project.",
18070
+ "stability": "experimental",
18071
+ "summary": "A path from the project root directory to a TypeScript file which contains the integration test app."
18072
+ },
18073
+ "immutable": true,
18074
+ "locationInModule": {
18075
+ "filename": "src/awscdk/integration-test.ts",
18076
+ "line": 28
18077
+ },
18078
+ "name": "entrypoint",
18079
+ "type": {
18080
+ "primitive": "string"
18081
+ }
18082
+ }
18083
+ ],
18084
+ "symbolId": "src/awscdk/integration-test:IntegrationTestOptions"
18085
+ },
17830
18086
  "projen.awscdk.LambdaFunction": {
17831
18087
  "assembly": "projen",
17832
18088
  "base": "projen.Component",
@@ -34411,6 +34667,6 @@
34411
34667
  "symbolId": "src/web/tailwind:TailwindConfigOptions"
34412
34668
  }
34413
34669
  },
34414
- "version": "0.34.25",
34415
- "fingerprint": "XsTL86r6/nItWcVqzwDJe4JBoVeAl1bkrRbHBf0My5A="
34670
+ "version": "0.35.0",
34671
+ "fingerprint": "oYNSctgM+Rh2+hefjMJ6Q7BlJXkN6AqKzTsjGcPgkds="
34416
34672
  }
package/API.md CHANGED
@@ -53,6 +53,7 @@ Name|Description
53
53
  [awscdk.AwsCdkJavaApp](#projen-awscdk-awscdkjavaapp)|AWS CDK app in Java.
54
54
  [awscdk.CdkConfig](#projen-awscdk-cdkconfig)|Represents cdk.json file.
55
55
  [awscdk.CdkTasks](#projen-awscdk-cdktasks)|Adds standard AWS CDK tasks to your project.
56
+ [awscdk.IntegrationTest](#projen-awscdk-integrationtest)|Cloud integration tests.
56
57
  [awscdk.LambdaFunction](#projen-awscdk-lambdafunction)|Generates a pre-bundled AWS Lambda function construct from handler code.
57
58
  [awscdk.LambdaRuntime](#projen-awscdk-lambdaruntime)|The runtime for the AWS Lambda function.
58
59
  [deps.Dependencies](#projen-deps-dependencies)|The `Dependencies` component is responsible to track the list of dependencies a project has, and then used by project types as the model for rendering project-specific dependency manifests such as the dependencies section `package.json` files.
@@ -182,6 +183,8 @@ Name|Description
182
183
  [awscdk.AwsCdkJavaAppOptions](#projen-awscdk-awscdkjavaappoptions)|*No description*
183
184
  [awscdk.CdkConfigCommonOptions](#projen-awscdk-cdkconfigcommonoptions)|Common options for `cdk.json`.
184
185
  [awscdk.CdkConfigOptions](#projen-awscdk-cdkconfigoptions)|Options for `CdkJson`.
186
+ [awscdk.IntegrationTestCommonOptions](#projen-awscdk-integrationtestcommonoptions)|*No description*
187
+ [awscdk.IntegrationTestOptions](#projen-awscdk-integrationtestoptions)|Options for `IntegrationTest`.
185
188
  [awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)|Common options for `LambdaFunction`.
186
189
  [awscdk.LambdaFunctionOptions](#projen-awscdk-lambdafunctionoptions)|Options for `Function`.
187
190
  [deps.Dependency](#projen-deps-dependency)|Represents a project dependency.
@@ -674,6 +677,8 @@ new AwsCdkTypeScriptApp(options: AwsCdkTypeScriptAppOptions)
674
677
  * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
675
678
  * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
676
679
  * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. __*Default*__: ApprovalLevel.BROADENING
680
+ * **watchExcludes** (<code>Array<string></code>) Glob patterns to exclude from `cdk watch`. __*Default*__: []
681
+ * **watchIncludes** (<code>Array<string></code>) Glob patterns to include in `cdk watch`. __*Default*__: []
677
682
  * **cdkVersion** (<code>string</code>) AWS CDK version to use.
678
683
  * **appEntrypoint** (<code>string</code>) The CDK app's entrypoint (relative to the source directory, which is "src" by default). __*Default*__: "main.ts"
679
684
  * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules (those that start with "@aws-cdk/") this app uses. __*Optional*__
@@ -5175,6 +5180,7 @@ new awscdk.AutoDiscover(project: Project, options: AutoDiscoverOptions)
5175
5180
  * **project** (<code>[Project](#projen-project)</code>) *No description*
5176
5181
  * **options** (<code>[awscdk.AutoDiscoverOptions](#projen-awscdk-autodiscoveroptions)</code>) *No description*
5177
5182
  * **srcdir** (<code>string</code>) Project source tree (relative to project output directory).
5183
+ * **testdir** (<code>string</code>) Test source tree.
5178
5184
  * **lambdaOptions** (<code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code>) Options for auto-discovery of AWS Lambda functions. __*Optional*__
5179
5185
 
5180
5186
 
@@ -5240,6 +5246,8 @@ new awscdk.AwsCdkJavaApp(options: AwsCdkJavaAppOptions)
5240
5246
  * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
5241
5247
  * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
5242
5248
  * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. __*Default*__: ApprovalLevel.BROADENING
5249
+ * **watchExcludes** (<code>Array<string></code>) Glob patterns to exclude from `cdk watch`. __*Default*__: []
5250
+ * **watchIncludes** (<code>Array<string></code>) Glob patterns to include in `cdk watch`. __*Default*__: []
5243
5251
  * **cdkVersion** (<code>string</code>) AWS CDK version to use (you can use semantic versioning).
5244
5252
  * **mainClass** (<code>string</code>) The name of the Java class with the static `main()` method.
5245
5253
  * **cdkDependencies** (<code>Array<string></code>) Which AWS CDK modules this app uses. __*Optional*__
@@ -5299,6 +5307,8 @@ new awscdk.CdkConfig(project: Project, options: CdkConfigOptions)
5299
5307
  * **context** (<code>Map<string, string></code>) Additional context to include in `cdk.json`. __*Default*__: no additional context
5300
5308
  * **featureFlags** (<code>boolean</code>) Include all feature flags in cdk.json. __*Default*__: true
5301
5309
  * **requireApproval** (<code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code>) To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them. __*Default*__: ApprovalLevel.BROADENING
5310
+ * **watchExcludes** (<code>Array<string></code>) Glob patterns to exclude from `cdk watch`. __*Default*__: []
5311
+ * **watchIncludes** (<code>Array<string></code>) Glob patterns to include in `cdk watch`. __*Default*__: []
5302
5312
  * **app** (<code>string</code>) The command line to execute in order to synthesize the CDK application (language specific).
5303
5313
 
5304
5314
 
@@ -5346,6 +5356,43 @@ Name | Type | Description
5346
5356
 
5347
5357
 
5348
5358
 
5359
+ ## class IntegrationTest 🔹 <a id="projen-awscdk-integrationtest"></a>
5360
+
5361
+ Cloud integration tests.
5362
+
5363
+ __Submodule__: awscdk
5364
+
5365
+ __Extends__: [Component](#projen-component)
5366
+
5367
+ ### Initializer
5368
+
5369
+
5370
+
5371
+
5372
+ ```ts
5373
+ new awscdk.IntegrationTest(project: Project, options: IntegrationTestOptions)
5374
+ ```
5375
+
5376
+ * **project** (<code>[Project](#projen-project)</code>) *No description*
5377
+ * **options** (<code>[awscdk.IntegrationTestOptions](#projen-awscdk-integrationtestoptions)</code>) *No description*
5378
+ * **destroyAfterDeploy** (<code>boolean</code>) Destroy the test app after a successful deployment. __*Default*__: true
5379
+ * **entrypoint** (<code>string</code>) A path from the project root directory to a TypeScript file which contains the integration test app.
5380
+
5381
+
5382
+
5383
+ ### Properties
5384
+
5385
+
5386
+ Name | Type | Description
5387
+ -----|------|-------------
5388
+ **assertTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Synthesizes the integration test and compares against a local copy (runs during build).
5389
+ **deployTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Deploy the integration test and update the snapshot upon success.
5390
+ **destroyTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Destroys a deployed stack.
5391
+ **snapshotTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | Just update snapshot (without deployment).
5392
+ **watchTask**🔹 | <code>[tasks.Task](#projen-tasks-task)</code> | The watch task.
5393
+
5394
+
5395
+
5349
5396
  ## class LambdaFunction 🔹 <a id="projen-awscdk-lambdafunction"></a>
5350
5397
 
5351
5398
  Generates a pre-bundled AWS Lambda function construct from handler code.
@@ -9200,6 +9247,8 @@ Name | Type | Description
9200
9247
  **typescriptVersion**?🔹 | <code>string</code> | TypeScript version to use.<br/>__*Default*__: "latest"
9201
9248
  **versionrcOptions**?🔹 | <code>Map<string, any></code> | Custom configuration used when creating changelog with standard-version package.<br/>__*Default*__: standard configuration applicable for GitHub repositories
9202
9249
  **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
9250
+ **watchExcludes**?🔹 | <code>Array<string></code> | Glob patterns to exclude from `cdk watch`.<br/>__*Default*__: []
9251
+ **watchIncludes**?🔹 | <code>Array<string></code> | Glob patterns to include in `cdk watch`.<br/>__*Default*__: []
9203
9252
  **workflowBootstrapSteps**?🔹 | <code>Array<any></code> | Workflow steps to use in order to bootstrap this repo.<br/>__*Default*__: "yarn install --frozen-lockfile && yarn projen"
9204
9253
  **workflowContainerImage**?🔹 | <code>string</code> | Container image to use for GitHub workflows.<br/>__*Default*__: default image
9205
9254
  **workflowGitIdentity**?🔹 | <code>[github.GitIdentity](#projen-github-gitidentity)</code> | The git identity to use in workflows.<br/>__*Default*__: GitHub Actions
@@ -11697,6 +11746,7 @@ Options for `AutoDiscover`.
11697
11746
  Name | Type | Description
11698
11747
  -----|------|-------------
11699
11748
  **srcdir**🔹 | <code>string</code> | Project source tree (relative to project output directory).
11749
+ **testdir**🔹 | <code>string</code> | Test source tree.
11700
11750
  **lambdaOptions**?🔹 | <code>[awscdk.LambdaFunctionCommonOptions](#projen-awscdk-lambdafunctioncommonoptions)</code> | Options for auto-discovery of AWS Lambda functions.<br/>__*Optional*__
11701
11751
 
11702
11752
 
@@ -11755,6 +11805,8 @@ Name | Type | Description
11755
11805
  **testDeps**?🔹 | <code>Array<string></code> | List of test dependencies for this project.<br/>__*Default*__: []
11756
11806
  **url**?🔹 | <code>string</code> | The URL, like the name, is not required.<br/>__*Default*__: undefined
11757
11807
  **vscode**?🔹 | <code>boolean</code> | Enable VSCode integration.<br/>__*Default*__: true
11808
+ **watchExcludes**?🔹 | <code>Array<string></code> | Glob patterns to exclude from `cdk watch`.<br/>__*Default*__: []
11809
+ **watchIncludes**?🔹 | <code>Array<string></code> | Glob patterns to include in `cdk watch`.<br/>__*Default*__: []
11758
11810
 
11759
11811
 
11760
11812
 
@@ -11771,6 +11823,8 @@ Name | Type | Description
11771
11823
  **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
11772
11824
  **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
11773
11825
  **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them.<br/>__*Default*__: ApprovalLevel.BROADENING
11826
+ **watchExcludes**?🔹 | <code>Array<string></code> | Glob patterns to exclude from `cdk watch`.<br/>__*Default*__: []
11827
+ **watchIncludes**?🔹 | <code>Array<string></code> | Glob patterns to include in `cdk watch`.<br/>__*Default*__: []
11774
11828
 
11775
11829
 
11776
11830
 
@@ -11788,6 +11842,35 @@ Name | Type | Description
11788
11842
  **context**?🔹 | <code>Map<string, string></code> | Additional context to include in `cdk.json`.<br/>__*Default*__: no additional context
11789
11843
  **featureFlags**?🔹 | <code>boolean</code> | Include all feature flags in cdk.json.<br/>__*Default*__: true
11790
11844
  **requireApproval**?🔹 | <code>[awscdk.ApprovalLevel](#projen-awscdk-approvallevel)</code> | To protect you against unintended changes that affect your security posture, the AWS CDK Toolkit prompts you to approve security-related changes before deploying them.<br/>__*Default*__: ApprovalLevel.BROADENING
11845
+ **watchExcludes**?🔹 | <code>Array<string></code> | Glob patterns to exclude from `cdk watch`.<br/>__*Default*__: []
11846
+ **watchIncludes**?🔹 | <code>Array<string></code> | Glob patterns to include in `cdk watch`.<br/>__*Default*__: []
11847
+
11848
+
11849
+
11850
+ ## struct IntegrationTestCommonOptions 🔹 <a id="projen-awscdk-integrationtestcommonoptions"></a>
11851
+
11852
+
11853
+
11854
+
11855
+
11856
+
11857
+ Name | Type | Description
11858
+ -----|------|-------------
11859
+ **destroyAfterDeploy**?🔹 | <code>boolean</code> | Destroy the test app after a successful deployment.<br/>__*Default*__: true
11860
+
11861
+
11862
+
11863
+ ## struct IntegrationTestOptions 🔹 <a id="projen-awscdk-integrationtestoptions"></a>
11864
+
11865
+
11866
+ Options for `IntegrationTest`.
11867
+
11868
+
11869
+
11870
+ Name | Type | Description
11871
+ -----|------|-------------
11872
+ **entrypoint**🔹 | <code>string</code> | A path from the project root directory to a TypeScript file which contains the integration test app.
11873
+ **destroyAfterDeploy**?🔹 | <code>boolean</code> | Destroy the test app after a successful deployment.<br/>__*Default*__: true
11791
11874
 
11792
11875
 
11793
11876
 
package/docs/awscdk.md CHANGED
@@ -95,37 +95,34 @@ new awscdk.LambdaFunction(p, {
95
95
  });
96
96
  ```
97
97
 
98
- ## Integration Snapshot Tests (NOT IMPLEMENTED YET)
98
+ ## Integration Snapshot Tests
99
99
 
100
- Files in the test tree with the `.integ.ts` suffix are recognized as
100
+ Files in the `test/` tree with the `.integ.ts` suffix are recognized as
101
101
  *integration snapshot tests*.
102
102
 
103
- Each test is a simple app (e.g. calls `app.synth()`) which exercises certain
103
+ Each test is a simple CDK app (e.g. calls `app.synth()`) which exercises certain
104
104
  construct(s) within the project. A test is considered passing if the app can be
105
105
  successfully deployed.
106
106
 
107
- During build, integration test apps are synthesized and their output is compared
108
- to a committed *snapshot*. If the output is the same, the test has passed,
109
- otherwise the build will fail.
110
-
111
- To create/update the snapshot, developers need to manually execute the task
112
- `integ:NAME:deploy` with AWS credentials in their environment. This task will
113
- `cdk deploy` the test app to their development account and if deployment
114
- succeeded (i.e. the test passed), it will take a snapshot of the output and add
115
- it to the repository under a `xxx.integ.snapshot` directory. This directory
116
- should be committed to the repository.
117
-
118
- In addition to the `integ:NAME:deploy` task, for each integration test, the
119
- following set of tasks are created:
120
-
121
- * `integ:NAME:deploy` - deploys & destroys the test app and updates the snapshot.
122
- * `integ:NAME:destroy` - destroys a previously deployed test app.
123
- * `integ:NAME:assert` - synthesizes the test app and compares it with the
124
- snapshot (this is the task that runs during build).
125
- * `integ:NAME:snapshot` - synthesizes the test app and updates the snapshot
126
- (bypasses the deployment).
127
- * `integ:NAME:watch` - starts `cdk watch` for the test app (monitors all source
128
- files and bundles).
107
+ To create/update the snapshot, developers are expected to execute the task
108
+ `integ:NAME:deploy` with AWS credentials for their personal development
109
+ environment. This task will deploy the test app to their account. Upon
110
+ successful deployment (i.e. the test passed), the snapshot will be captured and
111
+ stored under a directory called `xxx.integ.snapshot` next to the test
112
+ entrypoint. This directory should be committed to the repository.
113
+
114
+ During builds (either local or within a workflow), the task `integ:NAME:assert`
115
+ will be executed. This task synthesizes the test app and compares the output to
116
+ the captured snapshot. The build will fail if the output differs.
117
+
118
+ For each integration test, the following set of tasks are created:
119
+
120
+ |Task|Description|
121
+ |----|-----------|
122
+ |`integ:NAME:deploy`|Deploys & destroys the test app and updates the snapshot.|
123
+ |`integ:NAME:assert`|Synthesizes the test app and compares it with the snapshot (this is the task that runs during build)|
124
+ |`integ:NAME:snapshot`|Synthesizes the test app and updates the snapshot (not recommended to use because it bypasses deployment).|
125
+ |`integ:NAME:destroy`|Destroys a previously deployed test app.|
129
126
 
130
127
  ### Writing test assertions
131
128