@eui/mcp 1.0.3 → 1.2.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.
- package/dist/config/__tests__/schema.property.test.d.ts +2 -0
- package/dist/config/__tests__/schema.property.test.d.ts.map +1 -0
- package/dist/config/__tests__/schema.property.test.js +203 -0
- package/dist/config/__tests__/schema.property.test.js.map +1 -0
- package/dist/config/__tests__/schema.test.d.ts +2 -0
- package/dist/config/__tests__/schema.test.d.ts.map +1 -0
- package/dist/config/__tests__/schema.test.js +454 -0
- package/dist/config/__tests__/schema.test.js.map +1 -0
- package/dist/config/loader.js +4 -4
- package/dist/config/loader.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/loader/__tests__/cache-manager.property.test.d.ts +2 -0
- package/dist/loader/__tests__/cache-manager.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/cache-manager.property.test.js +245 -0
- package/dist/loader/__tests__/cache-manager.property.test.js.map +1 -0
- package/dist/loader/__tests__/cache-manager.test.d.ts +2 -0
- package/dist/loader/__tests__/cache-manager.test.d.ts.map +1 -0
- package/dist/loader/__tests__/cache-manager.test.js +256 -0
- package/dist/loader/__tests__/cache-manager.test.js.map +1 -0
- package/dist/loader/__tests__/documentation-loader.integration.test.d.ts +2 -0
- package/dist/loader/__tests__/documentation-loader.integration.test.d.ts.map +1 -0
- package/dist/loader/__tests__/documentation-loader.integration.test.js +498 -0
- package/dist/loader/__tests__/documentation-loader.integration.test.js.map +1 -0
- package/dist/loader/__tests__/documentation-loader.property.test.d.ts +2 -0
- package/dist/loader/__tests__/documentation-loader.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/documentation-loader.property.test.js +258 -0
- package/dist/loader/__tests__/documentation-loader.property.test.js.map +1 -0
- package/dist/loader/__tests__/errors.test.d.ts +2 -0
- package/dist/loader/__tests__/errors.test.d.ts.map +1 -0
- package/dist/loader/__tests__/errors.test.js +132 -0
- package/dist/loader/__tests__/errors.test.js.map +1 -0
- package/dist/loader/__tests__/http-client.property.test.d.ts +2 -0
- package/dist/loader/__tests__/http-client.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/http-client.property.test.js +288 -0
- package/dist/loader/__tests__/http-client.property.test.js.map +1 -0
- package/dist/loader/__tests__/http-client.test.d.ts +2 -0
- package/dist/loader/__tests__/http-client.test.d.ts.map +1 -0
- package/dist/loader/__tests__/http-client.test.js +497 -0
- package/dist/loader/__tests__/http-client.test.js.map +1 -0
- package/dist/loader/__tests__/local-documentation-source.property.test.d.ts +2 -0
- package/dist/loader/__tests__/local-documentation-source.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/local-documentation-source.property.test.js +373 -0
- package/dist/loader/__tests__/local-documentation-source.property.test.js.map +1 -0
- package/dist/loader/__tests__/local-documentation-source.test.d.ts +2 -0
- package/dist/loader/__tests__/local-documentation-source.test.d.ts.map +1 -0
- package/dist/loader/__tests__/local-documentation-source.test.js +544 -0
- package/dist/loader/__tests__/local-documentation-source.test.js.map +1 -0
- package/dist/loader/__tests__/path-type-detector.property.test.d.ts +2 -0
- package/dist/loader/__tests__/path-type-detector.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/path-type-detector.property.test.js +245 -0
- package/dist/loader/__tests__/path-type-detector.property.test.js.map +1 -0
- package/dist/loader/__tests__/path-type-detector.test.d.ts +2 -0
- package/dist/loader/__tests__/path-type-detector.test.d.ts.map +1 -0
- package/dist/loader/__tests__/path-type-detector.test.js +390 -0
- package/dist/loader/__tests__/path-type-detector.test.js.map +1 -0
- package/dist/loader/__tests__/remote-documentation-source.property.test.d.ts +2 -0
- package/dist/loader/__tests__/remote-documentation-source.property.test.d.ts.map +1 -0
- package/dist/loader/__tests__/remote-documentation-source.property.test.js +462 -0
- package/dist/loader/__tests__/remote-documentation-source.property.test.js.map +1 -0
- package/dist/loader/__tests__/remote-documentation-source.test.d.ts +2 -0
- package/dist/loader/__tests__/remote-documentation-source.test.d.ts.map +1 -0
- package/dist/loader/__tests__/remote-documentation-source.test.js +707 -0
- package/dist/loader/__tests__/remote-documentation-source.test.js.map +1 -0
- package/dist/loader/remote-documentation-source.d.ts +0 -4
- package/dist/loader/remote-documentation-source.d.ts.map +1 -1
- package/dist/loader/remote-documentation-source.js +1 -4
- package/dist/loader/remote-documentation-source.js.map +1 -1
- package/dist/main.js +0 -0
- package/dist/main.js.map +1 -1
- package/dist/mcp/__tests__/server.property.test.d.ts +2 -0
- package/dist/mcp/__tests__/server.property.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/server.property.test.js +286 -0
- package/dist/mcp/__tests__/server.property.test.js.map +1 -0
- package/dist/mcp/__tests__/server.test.d.ts +2 -0
- package/dist/mcp/__tests__/server.test.d.ts.map +1 -0
- package/dist/mcp/__tests__/server.test.js +101 -0
- package/dist/mcp/__tests__/server.test.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +16 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/publish/__tests__/publish-utils.test.d.ts +5 -0
- package/dist/publish/__tests__/publish-utils.test.d.ts.map +1 -0
- package/dist/publish/__tests__/publish-utils.test.js +189 -0
- package/dist/publish/__tests__/publish-utils.test.js.map +1 -0
- package/dist/query/__tests__/deprecation-parser.test.d.ts +2 -0
- package/dist/query/__tests__/deprecation-parser.test.d.ts.map +1 -0
- package/dist/query/__tests__/deprecation-parser.test.js +154 -0
- package/dist/query/__tests__/deprecation-parser.test.js.map +1 -0
- package/dist/query/__tests__/deprecation-query.test.d.ts +2 -0
- package/dist/query/__tests__/deprecation-query.test.d.ts.map +1 -0
- package/dist/query/__tests__/deprecation-query.test.js +199 -0
- package/dist/query/__tests__/deprecation-query.test.js.map +1 -0
- package/dist/query/__tests__/index-builder-debug.test.d.ts +2 -0
- package/dist/query/__tests__/index-builder-debug.test.d.ts.map +1 -0
- package/dist/query/__tests__/index-builder-debug.test.js +34 -0
- package/dist/query/__tests__/index-builder-debug.test.js.map +1 -0
- package/dist/query/__tests__/index-builder.property.test.d.ts +2 -0
- package/dist/query/__tests__/index-builder.property.test.d.ts.map +1 -0
- package/dist/query/__tests__/index-builder.property.test.js +422 -0
- package/dist/query/__tests__/index-builder.property.test.js.map +1 -0
- package/dist/query/__tests__/index-builder.test.d.ts +2 -0
- package/dist/query/__tests__/index-builder.test.d.ts.map +1 -0
- package/dist/query/__tests__/index-builder.test.js +55 -0
- package/dist/query/__tests__/index-builder.test.js.map +1 -0
- package/dist/query/__tests__/result-formatter-deprecation.test.d.ts +2 -0
- package/dist/query/__tests__/result-formatter-deprecation.test.d.ts.map +1 -0
- package/dist/query/__tests__/result-formatter-deprecation.test.js +159 -0
- package/dist/query/__tests__/result-formatter-deprecation.test.js.map +1 -0
- package/dist/query/__tests__/result-formatter.integration.test.d.ts +2 -0
- package/dist/query/__tests__/result-formatter.integration.test.d.ts.map +1 -0
- package/dist/query/__tests__/result-formatter.integration.test.js +140 -0
- package/dist/query/__tests__/result-formatter.integration.test.js.map +1 -0
- package/dist/query/__tests__/result-formatter.property.test.d.ts +2 -0
- package/dist/query/__tests__/result-formatter.property.test.d.ts.map +1 -0
- package/dist/query/__tests__/result-formatter.property.test.js +163 -0
- package/dist/query/__tests__/result-formatter.property.test.js.map +1 -0
- package/dist/query/__tests__/result-formatter.test.d.ts +2 -0
- package/dist/query/__tests__/result-formatter.test.d.ts.map +1 -0
- package/dist/query/__tests__/result-formatter.test.js +85 -0
- package/dist/query/__tests__/result-formatter.test.js.map +1 -0
- package/dist/query/__tests__/search-engine.property.test.d.ts +2 -0
- package/dist/query/__tests__/search-engine.property.test.d.ts.map +1 -0
- package/dist/query/__tests__/search-engine.property.test.js +389 -0
- package/dist/query/__tests__/search-engine.property.test.js.map +1 -0
- package/dist/query/deprecation-parser.d.ts +46 -0
- package/dist/query/deprecation-parser.d.ts.map +1 -0
- package/dist/query/deprecation-parser.js +81 -0
- package/dist/query/deprecation-parser.js.map +1 -0
- package/dist/query/deprecation-query.d.ts +19 -0
- package/dist/query/deprecation-query.d.ts.map +1 -0
- package/dist/query/deprecation-query.js +73 -0
- package/dist/query/deprecation-query.js.map +1 -0
- package/dist/query/result-formatter.d.ts +27 -0
- package/dist/query/result-formatter.d.ts.map +1 -1
- package/dist/query/result-formatter.js +64 -5
- package/dist/query/result-formatter.js.map +1 -1
- package/dist/tools/__tests__/deprecation-tools.test.d.ts +2 -0
- package/dist/tools/__tests__/deprecation-tools.test.d.ts.map +1 -0
- package/dist/tools/__tests__/deprecation-tools.test.js +178 -0
- package/dist/tools/__tests__/deprecation-tools.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-docs.property.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-docs.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-docs.property.test.js +594 -0
- package/dist/tools/__tests__/get-component-docs.property.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-docs.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-docs.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-docs.test.js +137 -0
- package/dist/tools/__tests__/get-component-docs.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-examples.property.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-examples.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-examples.property.test.js +245 -0
- package/dist/tools/__tests__/get-component-examples.property.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-examples.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-examples.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-examples.test.js +128 -0
- package/dist/tools/__tests__/get-component-examples.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-inputs.property.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-inputs.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-inputs.property.test.js +310 -0
- package/dist/tools/__tests__/get-component-inputs.property.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-inputs.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-inputs.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-inputs.test.js +245 -0
- package/dist/tools/__tests__/get-component-inputs.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-outputs.property.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-outputs.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-outputs.property.test.js +227 -0
- package/dist/tools/__tests__/get-component-outputs.property.test.js.map +1 -0
- package/dist/tools/__tests__/get-component-outputs.test.d.ts +2 -0
- package/dist/tools/__tests__/get-component-outputs.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-component-outputs.test.js +189 -0
- package/dist/tools/__tests__/get-component-outputs.test.js.map +1 -0
- package/dist/tools/__tests__/get-library-version.property.test.d.ts +2 -0
- package/dist/tools/__tests__/get-library-version.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-library-version.property.test.js +115 -0
- package/dist/tools/__tests__/get-library-version.property.test.js.map +1 -0
- package/dist/tools/__tests__/get-library-version.test.d.ts +2 -0
- package/dist/tools/__tests__/get-library-version.test.d.ts.map +1 -0
- package/dist/tools/__tests__/get-library-version.test.js +97 -0
- package/dist/tools/__tests__/get-library-version.test.js.map +1 -0
- package/dist/tools/__tests__/list-components.property.test.d.ts +2 -0
- package/dist/tools/__tests__/list-components.property.test.d.ts.map +1 -0
- package/dist/tools/__tests__/list-components.property.test.js +241 -0
- package/dist/tools/__tests__/list-components.property.test.js.map +1 -0
- package/dist/tools/__tests__/list-components.test.d.ts +2 -0
- package/dist/tools/__tests__/list-components.test.d.ts.map +1 -0
- package/dist/tools/__tests__/list-components.test.js +170 -0
- package/dist/tools/__tests__/list-components.test.js.map +1 -0
- package/dist/tools/__tests__/search-components.test.d.ts +2 -0
- package/dist/tools/__tests__/search-components.test.d.ts.map +1 -0
- package/dist/tools/__tests__/search-components.test.js +239 -0
- package/dist/tools/__tests__/search-components.test.js.map +1 -0
- package/dist/tools/get-deprecation-info.d.ts +42 -0
- package/dist/tools/get-deprecation-info.d.ts.map +1 -0
- package/dist/tools/get-deprecation-info.js +55 -0
- package/dist/tools/get-deprecation-info.js.map +1 -0
- package/dist/tools/get-library-version.d.ts +33 -0
- package/dist/tools/get-library-version.d.ts.map +1 -0
- package/dist/tools/get-library-version.js +62 -0
- package/dist/tools/get-library-version.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-deprecated.d.ts +47 -0
- package/dist/tools/list-deprecated.d.ts.map +1 -0
- package/dist/tools/list-deprecated.js +56 -0
- package/dist/tools/list-deprecated.js.map +1 -0
- package/dist/types/compodoc.d.ts +1 -0
- package/dist/types/compodoc.d.ts.map +1 -1
- package/dist/types/deprecation.d.ts +33 -0
- package/dist/types/deprecation.d.ts.map +1 -0
- package/dist/types/deprecation.js +5 -0
- package/dist/types/deprecation.js.map +1 -0
- package/dist/utils/__tests__/credential-masking.property.test.d.ts +2 -0
- package/dist/utils/__tests__/credential-masking.property.test.d.ts.map +1 -0
- package/dist/utils/__tests__/credential-masking.property.test.js +145 -0
- package/dist/utils/__tests__/credential-masking.property.test.js.map +1 -0
- package/dist/utils/__tests__/credential-masking.test.d.ts +2 -0
- package/dist/utils/__tests__/credential-masking.test.d.ts.map +1 -0
- package/dist/utils/__tests__/credential-masking.test.js +188 -0
- package/dist/utils/__tests__/credential-masking.test.js.map +1 -0
- package/dist/utils/__tests__/errors.test.d.ts +2 -0
- package/dist/utils/__tests__/errors.test.d.ts.map +1 -0
- package/dist/utils/__tests__/errors.test.js +110 -0
- package/dist/utils/__tests__/errors.test.js.map +1 -0
- package/dist/utils/__tests__/integration.test.d.ts +2 -0
- package/dist/utils/__tests__/integration.test.d.ts.map +1 -0
- package/dist/utils/__tests__/integration.test.js +142 -0
- package/dist/utils/__tests__/integration.test.js.map +1 -0
- package/dist/utils/__tests__/logger.test.d.ts +2 -0
- package/dist/utils/__tests__/logger.test.d.ts.map +1 -0
- package/dist/utils/__tests__/logger.test.js +119 -0
- package/dist/utils/__tests__/logger.test.js.map +1 -0
- package/dist/utils/__tests__/retry.test.d.ts +2 -0
- package/dist/utils/__tests__/retry.test.d.ts.map +1 -0
- package/dist/utils/__tests__/retry.test.js +84 -0
- package/dist/utils/__tests__/retry.test.js.map +1 -0
- package/dist/utils/credential-masking.js +4 -4
- package/dist/utils/credential-masking.js.map +1 -1
- package/dist/version/__tests__/changelog-commit-grouping.property.test.d.ts +2 -0
- package/dist/version/__tests__/changelog-commit-grouping.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/changelog-commit-grouping.property.test.js +297 -0
- package/dist/version/__tests__/changelog-commit-grouping.property.test.js.map +1 -0
- package/dist/version/__tests__/changelog-commit-parsing.property.test.d.ts +2 -0
- package/dist/version/__tests__/changelog-commit-parsing.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/changelog-commit-parsing.property.test.js +396 -0
- package/dist/version/__tests__/changelog-commit-parsing.property.test.js.map +1 -0
- package/dist/version/__tests__/changelog-file-updates.property.test.d.ts +11 -0
- package/dist/version/__tests__/changelog-file-updates.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/changelog-file-updates.property.test.js +452 -0
- package/dist/version/__tests__/changelog-file-updates.property.test.js.map +1 -0
- package/dist/version/__tests__/dry-run-action.property.test.d.ts +8 -0
- package/dist/version/__tests__/dry-run-action.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/dry-run-action.property.test.js +50 -0
- package/dist/version/__tests__/dry-run-action.property.test.js.map +1 -0
- package/dist/version/__tests__/dry-run-changelog.property.test.d.ts +8 -0
- package/dist/version/__tests__/dry-run-changelog.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/dry-run-changelog.property.test.js +53 -0
- package/dist/version/__tests__/dry-run-changelog.property.test.js.map +1 -0
- package/dist/version/__tests__/dry-run-utils.test.d.ts +7 -0
- package/dist/version/__tests__/dry-run-utils.test.d.ts.map +1 -0
- package/dist/version/__tests__/dry-run-utils.test.js +205 -0
- package/dist/version/__tests__/dry-run-utils.test.js.map +1 -0
- package/dist/version/__tests__/dry-run-version.property.test.d.ts +8 -0
- package/dist/version/__tests__/dry-run-version.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/dry-run-version.property.test.js +59 -0
- package/dist/version/__tests__/dry-run-version.property.test.js.map +1 -0
- package/dist/version/__tests__/git-tag-annotation.property.test.d.ts +11 -0
- package/dist/version/__tests__/git-tag-annotation.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/git-tag-annotation.property.test.js +271 -0
- package/dist/version/__tests__/git-tag-annotation.property.test.js.map +1 -0
- package/dist/version/__tests__/git-tag-format.property.test.d.ts +11 -0
- package/dist/version/__tests__/git-tag-format.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/git-tag-format.property.test.js +411 -0
- package/dist/version/__tests__/git-tag-format.property.test.js.map +1 -0
- package/dist/version/__tests__/git-tag-utils.test.d.ts +2 -0
- package/dist/version/__tests__/git-tag-utils.test.d.ts.map +1 -0
- package/dist/version/__tests__/git-tag-utils.test.js +142 -0
- package/dist/version/__tests__/git-tag-utils.test.js.map +1 -0
- package/dist/version/__tests__/npm-tag-selection.property.test.d.ts +2 -0
- package/dist/version/__tests__/npm-tag-selection.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/npm-tag-selection.property.test.js +79 -0
- package/dist/version/__tests__/npm-tag-selection.property.test.js.map +1 -0
- package/dist/version/__tests__/release-title-format.property.test.d.ts +11 -0
- package/dist/version/__tests__/release-title-format.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/release-title-format.property.test.js +422 -0
- package/dist/version/__tests__/release-title-format.property.test.js.map +1 -0
- package/dist/version/__tests__/release-utils.test.d.ts +7 -0
- package/dist/version/__tests__/release-utils.test.d.ts.map +1 -0
- package/dist/version/__tests__/release-utils.test.js +176 -0
- package/dist/version/__tests__/release-utils.test.js.map +1 -0
- package/dist/version/__tests__/rollback-changelog.property.test.d.ts +8 -0
- package/dist/version/__tests__/rollback-changelog.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/rollback-changelog.property.test.js +61 -0
- package/dist/version/__tests__/rollback-changelog.property.test.js.map +1 -0
- package/dist/version/__tests__/rollback-utils.test.d.ts +7 -0
- package/dist/version/__tests__/rollback-utils.test.d.ts.map +1 -0
- package/dist/version/__tests__/rollback-utils.test.js +74 -0
- package/dist/version/__tests__/rollback-utils.test.js.map +1 -0
- package/dist/version/__tests__/version-manager.property.test.d.ts +2 -0
- package/dist/version/__tests__/version-manager.property.test.d.ts.map +1 -0
- package/dist/version/__tests__/version-manager.property.test.js +143 -0
- package/dist/version/__tests__/version-manager.property.test.js.map +1 -0
- package/dist/version/__tests__/version-manager.test.d.ts +2 -0
- package/dist/version/__tests__/version-manager.test.d.ts.map +1 -0
- package/dist/version/__tests__/version-manager.test.js +203 -0
- package/dist/version/__tests__/version-manager.test.js.map +1 -0
- package/dist/version/version-manager.d.ts.map +1 -1
- package/dist/version/version-manager.js +0 -4
- package/dist/version/version-manager.js.map +1 -1
- package/package.json +1 -1
- package/dist/test-error.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run-utils.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/dry-run-utils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit Tests for Dry Run Utilities
|
|
3
|
+
*
|
|
4
|
+
* Tests the dry run mode detection and configuration functions.
|
|
5
|
+
*/
|
|
6
|
+
import { jest } from '@jest/globals';
|
|
7
|
+
import { isDryRunEnabled, getDryRunMode, shouldExecuteChanges, getDryRunConfig, logDryRunAction, logDryRunSkip, } from '../dry-run-utils.js';
|
|
8
|
+
describe('Dry Run Utilities', () => {
|
|
9
|
+
// Store original environment
|
|
10
|
+
const originalEnv = process.env.DRY_RUN;
|
|
11
|
+
// Mock console.log to capture output
|
|
12
|
+
let consoleLogSpy;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
// Clear DRY_RUN before each test
|
|
15
|
+
delete process.env.DRY_RUN;
|
|
16
|
+
// Spy on console.log
|
|
17
|
+
consoleLogSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
// Restore original environment
|
|
21
|
+
if (originalEnv !== undefined) {
|
|
22
|
+
process.env.DRY_RUN = originalEnv;
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
delete process.env.DRY_RUN;
|
|
26
|
+
}
|
|
27
|
+
// Restore console.log
|
|
28
|
+
consoleLogSpy.mockRestore();
|
|
29
|
+
});
|
|
30
|
+
describe('isDryRunEnabled', () => {
|
|
31
|
+
it('should return false when DRY_RUN is not set', () => {
|
|
32
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('should return true when DRY_RUN is "true"', () => {
|
|
35
|
+
process.env.DRY_RUN = 'true';
|
|
36
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it('should return true when DRY_RUN is "TRUE" (case-insensitive)', () => {
|
|
39
|
+
process.env.DRY_RUN = 'TRUE';
|
|
40
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('should return true when DRY_RUN is "True" (mixed case)', () => {
|
|
43
|
+
process.env.DRY_RUN = 'True';
|
|
44
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
it('should return true when DRY_RUN is "1"', () => {
|
|
47
|
+
process.env.DRY_RUN = '1';
|
|
48
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
49
|
+
});
|
|
50
|
+
it('should return true when DRY_RUN is "yes"', () => {
|
|
51
|
+
process.env.DRY_RUN = 'yes';
|
|
52
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
53
|
+
});
|
|
54
|
+
it('should return true when DRY_RUN is "YES" (case-insensitive)', () => {
|
|
55
|
+
process.env.DRY_RUN = 'YES';
|
|
56
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
it('should return false when DRY_RUN is "false"', () => {
|
|
59
|
+
process.env.DRY_RUN = 'false';
|
|
60
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
it('should return false when DRY_RUN is "0"', () => {
|
|
63
|
+
process.env.DRY_RUN = '0';
|
|
64
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
it('should return false when DRY_RUN is "no"', () => {
|
|
67
|
+
process.env.DRY_RUN = 'no';
|
|
68
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
69
|
+
});
|
|
70
|
+
it('should return false when DRY_RUN is empty string', () => {
|
|
71
|
+
process.env.DRY_RUN = '';
|
|
72
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
73
|
+
});
|
|
74
|
+
it('should return false when DRY_RUN is whitespace', () => {
|
|
75
|
+
process.env.DRY_RUN = ' ';
|
|
76
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
it('should handle whitespace around valid values', () => {
|
|
79
|
+
process.env.DRY_RUN = ' true ';
|
|
80
|
+
expect(isDryRunEnabled()).toBe(true);
|
|
81
|
+
});
|
|
82
|
+
it('should return false for invalid values', () => {
|
|
83
|
+
process.env.DRY_RUN = 'invalid';
|
|
84
|
+
expect(isDryRunEnabled()).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe('getDryRunMode', () => {
|
|
88
|
+
it('should return the same value as isDryRunEnabled', () => {
|
|
89
|
+
expect(getDryRunMode()).toBe(isDryRunEnabled());
|
|
90
|
+
process.env.DRY_RUN = 'true';
|
|
91
|
+
expect(getDryRunMode()).toBe(isDryRunEnabled());
|
|
92
|
+
expect(getDryRunMode()).toBe(true);
|
|
93
|
+
process.env.DRY_RUN = 'false';
|
|
94
|
+
expect(getDryRunMode()).toBe(isDryRunEnabled());
|
|
95
|
+
expect(getDryRunMode()).toBe(false);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe('shouldExecuteChanges', () => {
|
|
99
|
+
it('should return true when dry run is disabled', () => {
|
|
100
|
+
expect(shouldExecuteChanges()).toBe(true);
|
|
101
|
+
});
|
|
102
|
+
it('should return false when dry run is enabled', () => {
|
|
103
|
+
process.env.DRY_RUN = 'true';
|
|
104
|
+
expect(shouldExecuteChanges()).toBe(false);
|
|
105
|
+
});
|
|
106
|
+
it('should be the inverse of isDryRunEnabled', () => {
|
|
107
|
+
expect(shouldExecuteChanges()).toBe(!isDryRunEnabled());
|
|
108
|
+
process.env.DRY_RUN = 'true';
|
|
109
|
+
expect(shouldExecuteChanges()).toBe(!isDryRunEnabled());
|
|
110
|
+
process.env.DRY_RUN = '1';
|
|
111
|
+
expect(shouldExecuteChanges()).toBe(!isDryRunEnabled());
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
describe('getDryRunConfig', () => {
|
|
115
|
+
it('should return config with enabled false when DRY_RUN is not set', () => {
|
|
116
|
+
const config = getDryRunConfig();
|
|
117
|
+
expect(config.enabled).toBe(false);
|
|
118
|
+
expect(config.rawValue).toBeUndefined();
|
|
119
|
+
});
|
|
120
|
+
it('should return config with enabled true when DRY_RUN is "true"', () => {
|
|
121
|
+
process.env.DRY_RUN = 'true';
|
|
122
|
+
const config = getDryRunConfig();
|
|
123
|
+
expect(config.enabled).toBe(true);
|
|
124
|
+
expect(config.rawValue).toBe('true');
|
|
125
|
+
});
|
|
126
|
+
it('should return config with enabled true when DRY_RUN is "1"', () => {
|
|
127
|
+
process.env.DRY_RUN = '1';
|
|
128
|
+
const config = getDryRunConfig();
|
|
129
|
+
expect(config.enabled).toBe(true);
|
|
130
|
+
expect(config.rawValue).toBe('1');
|
|
131
|
+
});
|
|
132
|
+
it('should return config with enabled false when DRY_RUN is "false"', () => {
|
|
133
|
+
process.env.DRY_RUN = 'false';
|
|
134
|
+
const config = getDryRunConfig();
|
|
135
|
+
expect(config.enabled).toBe(false);
|
|
136
|
+
expect(config.rawValue).toBe('false');
|
|
137
|
+
});
|
|
138
|
+
it('should preserve the raw value even for invalid inputs', () => {
|
|
139
|
+
process.env.DRY_RUN = 'invalid';
|
|
140
|
+
const config = getDryRunConfig();
|
|
141
|
+
expect(config.enabled).toBe(false);
|
|
142
|
+
expect(config.rawValue).toBe('invalid');
|
|
143
|
+
});
|
|
144
|
+
it('should return config with raw value for empty string', () => {
|
|
145
|
+
process.env.DRY_RUN = '';
|
|
146
|
+
const config = getDryRunConfig();
|
|
147
|
+
expect(config.enabled).toBe(false);
|
|
148
|
+
expect(config.rawValue).toBe('');
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
describe('logDryRunAction', () => {
|
|
152
|
+
it('should log action with [DRY RUN] prefix', () => {
|
|
153
|
+
logDryRunAction('publish package to npm');
|
|
154
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Would execute: publish package to npm');
|
|
155
|
+
});
|
|
156
|
+
it('should handle empty action string', () => {
|
|
157
|
+
logDryRunAction('');
|
|
158
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Would execute: ');
|
|
159
|
+
});
|
|
160
|
+
it('should handle action with special characters', () => {
|
|
161
|
+
logDryRunAction('git push origin v1.2.3');
|
|
162
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Would execute: git push origin v1.2.3');
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
describe('logDryRunSkip', () => {
|
|
166
|
+
it('should log skip message with [DRY RUN] prefix', () => {
|
|
167
|
+
logDryRunSkip('npm publish');
|
|
168
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Skipping: npm publish');
|
|
169
|
+
});
|
|
170
|
+
it('should handle empty operation string', () => {
|
|
171
|
+
logDryRunSkip('');
|
|
172
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Skipping: ');
|
|
173
|
+
});
|
|
174
|
+
it('should handle operation with special characters', () => {
|
|
175
|
+
logDryRunSkip('git tag -a v1.2.3 -m "Release 1.2.3"');
|
|
176
|
+
expect(consoleLogSpy).toHaveBeenCalledWith('[DRY RUN] Skipping: git tag -a v1.2.3 -m "Release 1.2.3"');
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
describe('Integration scenarios', () => {
|
|
180
|
+
it('should work correctly in a typical dry run workflow', () => {
|
|
181
|
+
process.env.DRY_RUN = 'true';
|
|
182
|
+
const config = getDryRunConfig();
|
|
183
|
+
expect(config.enabled).toBe(true);
|
|
184
|
+
if (isDryRunEnabled()) {
|
|
185
|
+
logDryRunAction('bump version to 1.2.3');
|
|
186
|
+
logDryRunSkip('git commit');
|
|
187
|
+
logDryRunSkip('git push');
|
|
188
|
+
logDryRunSkip('npm publish');
|
|
189
|
+
}
|
|
190
|
+
expect(consoleLogSpy).toHaveBeenCalledTimes(4);
|
|
191
|
+
expect(shouldExecuteChanges()).toBe(false);
|
|
192
|
+
});
|
|
193
|
+
it('should work correctly in a typical production workflow', () => {
|
|
194
|
+
// DRY_RUN not set (production mode)
|
|
195
|
+
const config = getDryRunConfig();
|
|
196
|
+
expect(config.enabled).toBe(false);
|
|
197
|
+
if (!isDryRunEnabled()) {
|
|
198
|
+
// Would execute actual operations
|
|
199
|
+
expect(shouldExecuteChanges()).toBe(true);
|
|
200
|
+
}
|
|
201
|
+
expect(consoleLogSpy).not.toHaveBeenCalled();
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=dry-run-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run-utils.test.js","sourceRoot":"","sources":["../../../src/version/__tests__/dry-run-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run-version.property.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/dry-run-version.property.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property Tests for Dry Run Version Calculation
|
|
3
|
+
*
|
|
4
|
+
* Property 15: Dry Run Version Calculation
|
|
5
|
+
* Validates: Requirements 15.2
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect } from '@jest/globals';
|
|
8
|
+
import fc from 'fast-check';
|
|
9
|
+
import { calculateDryRunVersion, parseVersion, formatVersion } from '../version-manager.js';
|
|
10
|
+
describe('Feature: pipeline-release-support, Property 15: Dry Run Version Calculation', () => {
|
|
11
|
+
it('should calculate correct version without modifying input', () => {
|
|
12
|
+
fc.assert(fc.property(fc.record({
|
|
13
|
+
major: fc.nat(100),
|
|
14
|
+
minor: fc.nat(100),
|
|
15
|
+
patch: fc.nat(100),
|
|
16
|
+
}), fc.constantFrom('patch', 'minor', 'major'), (version, releaseType) => {
|
|
17
|
+
const versionString = formatVersion(version);
|
|
18
|
+
const result = calculateDryRunVersion(versionString, releaseType);
|
|
19
|
+
// Should return dry run result
|
|
20
|
+
expect(result.isDryRun).toBe(true);
|
|
21
|
+
expect(result.currentVersion).toBe(versionString);
|
|
22
|
+
expect(result.releaseType).toBe(releaseType);
|
|
23
|
+
// Should calculate correct new version
|
|
24
|
+
const parsed = parseVersion(result.newVersion);
|
|
25
|
+
switch (releaseType) {
|
|
26
|
+
case 'patch':
|
|
27
|
+
expect(parsed.major).toBe(version.major);
|
|
28
|
+
expect(parsed.minor).toBe(version.minor);
|
|
29
|
+
expect(parsed.patch).toBe(version.patch + 1);
|
|
30
|
+
break;
|
|
31
|
+
case 'minor':
|
|
32
|
+
expect(parsed.major).toBe(version.major);
|
|
33
|
+
expect(parsed.minor).toBe(version.minor + 1);
|
|
34
|
+
expect(parsed.patch).toBe(0);
|
|
35
|
+
break;
|
|
36
|
+
case 'major':
|
|
37
|
+
expect(parsed.major).toBe(version.major + 1);
|
|
38
|
+
expect(parsed.minor).toBe(0);
|
|
39
|
+
expect(parsed.patch).toBe(0);
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
});
|
|
44
|
+
it('should be idempotent - calling twice with same input produces same result', () => {
|
|
45
|
+
fc.assert(fc.property(fc.record({
|
|
46
|
+
major: fc.nat(100),
|
|
47
|
+
minor: fc.nat(100),
|
|
48
|
+
patch: fc.nat(100),
|
|
49
|
+
}), fc.constantFrom('patch', 'minor', 'major'), (version, releaseType) => {
|
|
50
|
+
const versionString = formatVersion(version);
|
|
51
|
+
const result1 = calculateDryRunVersion(versionString, releaseType);
|
|
52
|
+
const result2 = calculateDryRunVersion(versionString, releaseType);
|
|
53
|
+
expect(result1.currentVersion).toBe(result2.currentVersion);
|
|
54
|
+
expect(result1.newVersion).toBe(result2.newVersion);
|
|
55
|
+
expect(result1.releaseType).toBe(result2.releaseType);
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=dry-run-version.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dry-run-version.property.test.js","sourceRoot":"","sources":["../../../src/version/__tests__/dry-run-version.property.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-based tests for Git tag annotation completeness
|
|
3
|
+
*
|
|
4
|
+
* **Property 5: Git Tag Annotation Completeness**
|
|
5
|
+
* **Validates: Requirements 4.4**
|
|
6
|
+
*
|
|
7
|
+
* For any created Git tag, the tag annotation should contain both the version number
|
|
8
|
+
* and a timestamp in ISO 8601 format.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=git-tag-annotation.property.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-annotation.property.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-annotation.property.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-based tests for Git tag annotation completeness
|
|
3
|
+
*
|
|
4
|
+
* **Property 5: Git Tag Annotation Completeness**
|
|
5
|
+
* **Validates: Requirements 4.4**
|
|
6
|
+
*
|
|
7
|
+
* For any created Git tag, the tag annotation should contain both the version number
|
|
8
|
+
* and a timestamp in ISO 8601 format.
|
|
9
|
+
*/
|
|
10
|
+
import { describe, it, expect } from '@jest/globals';
|
|
11
|
+
import fc from 'fast-check';
|
|
12
|
+
import { createTagAnnotation, createTagAnnotationFromString, formatTimestamp } from '../git-tag-utils.js';
|
|
13
|
+
// Arbitrary generators for property-based testing
|
|
14
|
+
/**
|
|
15
|
+
* Generates a valid semantic version with non-negative integers
|
|
16
|
+
*/
|
|
17
|
+
const semanticVersionArb = fc.record({
|
|
18
|
+
major: fc.nat(1000),
|
|
19
|
+
minor: fc.nat(1000),
|
|
20
|
+
patch: fc.nat(1000),
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Generates a version string in format "MAJOR.MINOR.PATCH"
|
|
24
|
+
*/
|
|
25
|
+
const versionStringArb = fc.tuple(fc.nat(1000), fc.nat(1000), fc.nat(1000)).map(([major, minor, patch]) => `${major}.${minor}.${patch}`);
|
|
26
|
+
/**
|
|
27
|
+
* Generates a random date within a reasonable range
|
|
28
|
+
* (from year 2000 to year 2100)
|
|
29
|
+
*/
|
|
30
|
+
const dateArb = fc.date({
|
|
31
|
+
min: new Date('2000-01-01T00:00:00.000Z'),
|
|
32
|
+
max: new Date('2100-12-31T23:59:59.999Z'),
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Validates that a string is in ISO 8601 format
|
|
36
|
+
* ISO 8601 format: YYYY-MM-DDTHH:mm:ss.sssZ
|
|
37
|
+
*/
|
|
38
|
+
function isISO8601Format(timestamp) {
|
|
39
|
+
// ISO 8601 pattern with milliseconds and Z timezone
|
|
40
|
+
const iso8601Pattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
|
|
41
|
+
if (!iso8601Pattern.test(timestamp)) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
// Verify it's a valid date by parsing
|
|
45
|
+
const date = new Date(timestamp);
|
|
46
|
+
return !isNaN(date.getTime()) && date.toISOString() === timestamp;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extracts version number from annotation text
|
|
50
|
+
* Returns the version string if found, null otherwise
|
|
51
|
+
*/
|
|
52
|
+
function extractVersionFromAnnotation(annotation) {
|
|
53
|
+
// Match semantic version pattern: digits.digits.digits
|
|
54
|
+
const versionPattern = /(\d+\.\d+\.\d+)/;
|
|
55
|
+
const match = annotation.match(versionPattern);
|
|
56
|
+
return match ? match[1] : null;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extracts ISO 8601 timestamp from annotation text
|
|
60
|
+
* Returns the timestamp string if found, null otherwise
|
|
61
|
+
*/
|
|
62
|
+
function extractTimestampFromAnnotation(annotation) {
|
|
63
|
+
// Match ISO 8601 pattern
|
|
64
|
+
const iso8601Pattern = /(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)/;
|
|
65
|
+
const match = annotation.match(iso8601Pattern);
|
|
66
|
+
return match ? match[1] : null;
|
|
67
|
+
}
|
|
68
|
+
describe('Feature: pipeline-release-support, Property 5: Git Tag Annotation Completeness', () => {
|
|
69
|
+
describe('createTagAnnotation - Annotation from SemanticVersion', () => {
|
|
70
|
+
it('should contain the version number for any semantic version', () => {
|
|
71
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
72
|
+
const annotation = createTagAnnotation(version, date);
|
|
73
|
+
const expectedVersion = `${version.major}.${version.minor}.${version.patch}`;
|
|
74
|
+
// Property: Annotation must contain the version number
|
|
75
|
+
return annotation.includes(expectedVersion);
|
|
76
|
+
}), { numRuns: 100 });
|
|
77
|
+
});
|
|
78
|
+
it('should contain an ISO 8601 timestamp for any semantic version', () => {
|
|
79
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
80
|
+
const annotation = createTagAnnotation(version, date);
|
|
81
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
82
|
+
// Property: Annotation must contain a valid ISO 8601 timestamp
|
|
83
|
+
return extractedTimestamp !== null && isISO8601Format(extractedTimestamp);
|
|
84
|
+
}), { numRuns: 100 });
|
|
85
|
+
});
|
|
86
|
+
it('should contain both version and timestamp for any semantic version', () => {
|
|
87
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
88
|
+
const annotation = createTagAnnotation(version, date);
|
|
89
|
+
const expectedVersion = `${version.major}.${version.minor}.${version.patch}`;
|
|
90
|
+
const extractedVersion = extractVersionFromAnnotation(annotation);
|
|
91
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
92
|
+
// Property: Annotation must contain both version and valid timestamp
|
|
93
|
+
return (extractedVersion === expectedVersion &&
|
|
94
|
+
extractedTimestamp !== null &&
|
|
95
|
+
isISO8601Format(extractedTimestamp));
|
|
96
|
+
}), { numRuns: 100 });
|
|
97
|
+
});
|
|
98
|
+
it('should use the provided date in the timestamp', () => {
|
|
99
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
100
|
+
const annotation = createTagAnnotation(version, date);
|
|
101
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
102
|
+
const expectedTimestamp = formatTimestamp(date);
|
|
103
|
+
// Property: The timestamp in the annotation should match the provided date
|
|
104
|
+
return extractedTimestamp === expectedTimestamp;
|
|
105
|
+
}), { numRuns: 100 });
|
|
106
|
+
});
|
|
107
|
+
it('should be non-empty for any semantic version', () => {
|
|
108
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
109
|
+
const annotation = createTagAnnotation(version, date);
|
|
110
|
+
// Property: Annotation should never be empty
|
|
111
|
+
return annotation.length > 0;
|
|
112
|
+
}), { numRuns: 100 });
|
|
113
|
+
});
|
|
114
|
+
it('should produce consistent annotations for the same inputs', () => {
|
|
115
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
116
|
+
const annotation1 = createTagAnnotation(version, date);
|
|
117
|
+
const annotation2 = createTagAnnotation(version, date);
|
|
118
|
+
const annotation3 = createTagAnnotation(version, date);
|
|
119
|
+
// Property: Multiple calls with same inputs should produce identical results
|
|
120
|
+
return annotation1 === annotation2 && annotation2 === annotation3;
|
|
121
|
+
}), { numRuns: 100 });
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
describe('createTagAnnotationFromString - Annotation from version string', () => {
|
|
125
|
+
it('should contain the version number for any version string', () => {
|
|
126
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
127
|
+
const annotation = createTagAnnotationFromString(versionString, date);
|
|
128
|
+
// Property: Annotation must contain the version number
|
|
129
|
+
return annotation.includes(versionString);
|
|
130
|
+
}), { numRuns: 100 });
|
|
131
|
+
});
|
|
132
|
+
it('should contain an ISO 8601 timestamp for any version string', () => {
|
|
133
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
134
|
+
const annotation = createTagAnnotationFromString(versionString, date);
|
|
135
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
136
|
+
// Property: Annotation must contain a valid ISO 8601 timestamp
|
|
137
|
+
return extractedTimestamp !== null && isISO8601Format(extractedTimestamp);
|
|
138
|
+
}), { numRuns: 100 });
|
|
139
|
+
});
|
|
140
|
+
it('should contain both version and timestamp for any version string', () => {
|
|
141
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
142
|
+
const annotation = createTagAnnotationFromString(versionString, date);
|
|
143
|
+
const extractedVersion = extractVersionFromAnnotation(annotation);
|
|
144
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
145
|
+
// Property: Annotation must contain both version and valid timestamp
|
|
146
|
+
return (extractedVersion === versionString &&
|
|
147
|
+
extractedTimestamp !== null &&
|
|
148
|
+
isISO8601Format(extractedTimestamp));
|
|
149
|
+
}), { numRuns: 100 });
|
|
150
|
+
});
|
|
151
|
+
it('should handle version strings with v prefix correctly', () => {
|
|
152
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
153
|
+
const versionWithPrefix = `v${versionString}`;
|
|
154
|
+
const annotation = createTagAnnotationFromString(versionWithPrefix, date);
|
|
155
|
+
const extractedVersion = extractVersionFromAnnotation(annotation);
|
|
156
|
+
// Property: Should strip 'v' prefix and contain clean version
|
|
157
|
+
return extractedVersion === versionString;
|
|
158
|
+
}), { numRuns: 100 });
|
|
159
|
+
});
|
|
160
|
+
it('should use the provided date in the timestamp', () => {
|
|
161
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
162
|
+
const annotation = createTagAnnotationFromString(versionString, date);
|
|
163
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
164
|
+
const expectedTimestamp = formatTimestamp(date);
|
|
165
|
+
// Property: The timestamp in the annotation should match the provided date
|
|
166
|
+
return extractedTimestamp === expectedTimestamp;
|
|
167
|
+
}), { numRuns: 100 });
|
|
168
|
+
});
|
|
169
|
+
it('should produce consistent annotations for the same inputs', () => {
|
|
170
|
+
fc.assert(fc.property(versionStringArb, dateArb, (versionString, date) => {
|
|
171
|
+
const annotation1 = createTagAnnotationFromString(versionString, date);
|
|
172
|
+
const annotation2 = createTagAnnotationFromString(versionString, date);
|
|
173
|
+
// Property: Multiple calls with same inputs should produce identical results
|
|
174
|
+
return annotation1 === annotation2;
|
|
175
|
+
}), { numRuns: 100 });
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('Edge Cases and Boundary Conditions', () => {
|
|
179
|
+
it('should handle version 0.0.0 correctly', () => {
|
|
180
|
+
const version = { major: 0, minor: 0, patch: 0 };
|
|
181
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
182
|
+
const annotation = createTagAnnotation(version, date);
|
|
183
|
+
// Should contain version 0.0.0
|
|
184
|
+
expect(annotation).toContain('0.0.0');
|
|
185
|
+
// Should contain ISO 8601 timestamp
|
|
186
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
187
|
+
expect(extractedTimestamp).toBe('2024-01-15T10:30:00.000Z');
|
|
188
|
+
});
|
|
189
|
+
it('should handle large version numbers correctly', () => {
|
|
190
|
+
fc.assert(fc.property(fc.record({
|
|
191
|
+
major: fc.nat(999999),
|
|
192
|
+
minor: fc.nat(999999),
|
|
193
|
+
patch: fc.nat(999999),
|
|
194
|
+
}), dateArb, (version, date) => {
|
|
195
|
+
const annotation = createTagAnnotation(version, date);
|
|
196
|
+
const expectedVersion = `${version.major}.${version.minor}.${version.patch}`;
|
|
197
|
+
const extractedVersion = extractVersionFromAnnotation(annotation);
|
|
198
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
199
|
+
// Property: Should handle large numbers correctly
|
|
200
|
+
return (extractedVersion === expectedVersion &&
|
|
201
|
+
extractedTimestamp !== null &&
|
|
202
|
+
isISO8601Format(extractedTimestamp));
|
|
203
|
+
}), { numRuns: 100 });
|
|
204
|
+
});
|
|
205
|
+
it('should handle dates at year boundaries', () => {
|
|
206
|
+
const version = { major: 1, minor: 0, patch: 0 };
|
|
207
|
+
const dates = [
|
|
208
|
+
new Date('2000-01-01T00:00:00.000Z'),
|
|
209
|
+
new Date('2023-12-31T23:59:59.999Z'),
|
|
210
|
+
new Date('2024-01-01T00:00:00.000Z'),
|
|
211
|
+
new Date('2099-12-31T23:59:59.999Z'),
|
|
212
|
+
];
|
|
213
|
+
for (const date of dates) {
|
|
214
|
+
const annotation = createTagAnnotation(version, date);
|
|
215
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
216
|
+
expect(extractedTimestamp).toBe(date.toISOString());
|
|
217
|
+
expect(isISO8601Format(extractedTimestamp)).toBe(true);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
it('should handle dates with various millisecond values', () => {
|
|
221
|
+
fc.assert(fc.property(semanticVersionArb, fc.integer({ min: 0, max: 999 }), (version, milliseconds) => {
|
|
222
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
223
|
+
date.setMilliseconds(milliseconds);
|
|
224
|
+
const annotation = createTagAnnotation(version, date);
|
|
225
|
+
const extractedTimestamp = extractTimestampFromAnnotation(annotation);
|
|
226
|
+
// Property: Should preserve millisecond precision
|
|
227
|
+
return (extractedTimestamp !== null &&
|
|
228
|
+
isISO8601Format(extractedTimestamp) &&
|
|
229
|
+
extractedTimestamp === date.toISOString());
|
|
230
|
+
}), { numRuns: 100 });
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
describe('Format Validation', () => {
|
|
234
|
+
it('should always produce annotations with both required components', () => {
|
|
235
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
236
|
+
const annotation = createTagAnnotation(version, date);
|
|
237
|
+
// Property: Must have both version and timestamp patterns
|
|
238
|
+
const hasVersionPattern = /\d+\.\d+\.\d+/.test(annotation);
|
|
239
|
+
const hasTimestampPattern = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z/.test(annotation);
|
|
240
|
+
return hasVersionPattern && hasTimestampPattern;
|
|
241
|
+
}), { numRuns: 100 });
|
|
242
|
+
});
|
|
243
|
+
it('should produce annotations that are valid strings', () => {
|
|
244
|
+
fc.assert(fc.property(semanticVersionArb, dateArb, (version, date) => {
|
|
245
|
+
const annotation = createTagAnnotation(version, date);
|
|
246
|
+
// Property: Should be a non-empty string
|
|
247
|
+
return (typeof annotation === 'string' &&
|
|
248
|
+
annotation.length > 0 &&
|
|
249
|
+
annotation.trim().length > 0);
|
|
250
|
+
}), { numRuns: 100 });
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
describe('Timestamp Format Validation', () => {
|
|
254
|
+
it('should produce ISO 8601 timestamps for any date', () => {
|
|
255
|
+
fc.assert(fc.property(dateArb, (date) => {
|
|
256
|
+
const timestamp = formatTimestamp(date);
|
|
257
|
+
// Property: formatTimestamp should always produce valid ISO 8601
|
|
258
|
+
return isISO8601Format(timestamp);
|
|
259
|
+
}), { numRuns: 100 });
|
|
260
|
+
});
|
|
261
|
+
it('should produce timestamps that match Date.toISOString()', () => {
|
|
262
|
+
fc.assert(fc.property(dateArb, (date) => {
|
|
263
|
+
const timestamp = formatTimestamp(date);
|
|
264
|
+
const expected = date.toISOString();
|
|
265
|
+
// Property: Should match JavaScript's native ISO string format
|
|
266
|
+
return timestamp === expected;
|
|
267
|
+
}), { numRuns: 100 });
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
//# sourceMappingURL=git-tag-annotation.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-annotation.property.test.js","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-annotation.property.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG1G,kDAAkD;AAElD;;GAEG;AACH,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;CACpB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,gBAAgB,GAAG,EAAE,CAAC,KAAK,CAC/B,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EACZ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EACZ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CACb,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,GAAG,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC;IACzC,GAAG,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC;CAC1C,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,oDAAoD;IACpD,MAAM,cAAc,GAAG,+CAA+C,CAAC;IAEvE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sCAAsC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CAAC,UAAkB;IACtD,uDAAuD;IACvD,MAAM,cAAc,GAAG,iBAAiB,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,8BAA8B,CAAC,UAAkB;IACxD,yBAAyB;IACzB,MAAM,cAAc,GAAG,+CAA+C,CAAC;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,QAAQ,CAAC,gFAAgF,EAAE,GAAG,EAAE;IAC9F,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACrE,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAE7E,uDAAuD;gBACvD,OAAO,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC9C,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,+DAA+D;gBAC/D,OAAO,kBAAkB,KAAK,IAAI,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAC5E,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7E,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAClE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,qEAAqE;gBACrE,OAAO,CACL,gBAAgB,KAAK,eAAe;oBACpC,kBAAkB,KAAK,IAAI;oBAC3B,eAAe,CAAC,kBAAkB,CAAC,CACpC,CAAC;YACJ,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBACtE,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBAEhD,2EAA2E;gBAC3E,OAAO,kBAAkB,KAAK,iBAAiB,CAAC;YAClD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEtD,6CAA6C;gBAC7C,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEvD,6EAA6E;gBAC7E,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC;YACpE,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gEAAgE,EAAE,GAAG,EAAE;QAC9E,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAEtE,uDAAuD;gBACvD,OAAO,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,+DAA+D;gBAC/D,OAAO,kBAAkB,KAAK,IAAI,IAAI,eAAe,CAAC,kBAAkB,CAAC,CAAC;YAC5E,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAClE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,qEAAqE;gBACrE,OAAO,CACL,gBAAgB,KAAK,aAAa;oBAClC,kBAAkB,KAAK,IAAI;oBAC3B,eAAe,CAAC,kBAAkB,CAAC,CACpC,CAAC;YACJ,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,iBAAiB,GAAG,IAAI,aAAa,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,6BAA6B,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAC1E,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAElE,8DAA8D;gBAC9D,OAAO,gBAAgB,KAAK,aAAa,CAAC;YAC5C,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,UAAU,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACtE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBACtE,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBAEhD,2EAA2E;gBAC3E,OAAO,kBAAkB,KAAK,iBAAiB,CAAC;YAClD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,gBAAgB,EAChB,OAAO,EACP,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE;gBACtB,MAAM,WAAW,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM,WAAW,GAAG,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAEvE,6EAA6E;gBAC7E,OAAO,WAAW,KAAK,WAAW,CAAC;YACrC,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEtD,+BAA+B;YAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAEtC,oCAAoC;YACpC,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;YACtE,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,EAAE,CAAC,MAAM,CAAC;gBACR,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;gBACrB,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;aACtB,CAAC,EACF,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC7E,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;gBAClE,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,kDAAkD;gBAClD,OAAO,CACL,gBAAgB,KAAK,eAAe;oBACpC,kBAAkB,KAAK,IAAI;oBAC3B,eAAe,CAAC,kBAAkB,CAAC,CACpC,CAAC;YACJ,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,OAAO,GAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAClE,MAAM,KAAK,GAAG;gBACZ,IAAI,IAAI,CAAC,0BAA0B,CAAC;gBACpC,IAAI,IAAI,CAAC,0BAA0B,CAAC;gBACpC,IAAI,IAAI,CAAC,0BAA0B,CAAC;gBACpC,IAAI,IAAI,CAAC,0BAA0B,CAAC;aACrC,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,eAAe,CAAC,kBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAChC,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC;gBAClD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;gBAEnC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;gBAEtE,kDAAkD;gBAClD,OAAO,CACL,kBAAkB,KAAK,IAAI;oBAC3B,eAAe,CAAC,kBAAkB,CAAC;oBACnC,kBAAkB,KAAK,IAAI,CAAC,WAAW,EAAE,CAC1C,CAAC;YACJ,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEtD,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3D,MAAM,mBAAmB,GAAG,6CAA6C,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE3F,OAAO,iBAAiB,IAAI,mBAAmB,CAAC;YAClD,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,kBAAkB,EAClB,OAAO,EACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAChB,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAEtD,yCAAyC;gBACzC,OAAO,CACL,OAAO,UAAU,KAAK,QAAQ;oBAC9B,UAAU,CAAC,MAAM,GAAG,CAAC;oBACrB,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;YACJ,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,OAAO,EACP,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBAExC,iEAAiE;gBACjE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,EAAE,CAAC,MAAM,CACP,EAAE,CAAC,QAAQ,CACT,OAAO,EACP,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAEpC,+DAA+D;gBAC/D,OAAO,SAAS,KAAK,QAAQ,CAAC;YAChC,CAAC,CACF,EACD,EAAE,OAAO,EAAE,GAAG,EAAE,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Property-based tests for Git tag format compliance
|
|
3
|
+
*
|
|
4
|
+
* **Property 4: Git Tag Format Compliance**
|
|
5
|
+
* **Validates: Requirements 4.1**
|
|
6
|
+
*
|
|
7
|
+
* For any semantic version number, the generated Git tag name should follow
|
|
8
|
+
* the format "v{MAJOR}.{MINOR}.{PATCH}" where each component is a non-negative integer.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=git-tag-format.property.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-format.property.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-format.property.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|