@eui/mcp 1.0.3 → 1.3.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/README.md +117 -743
- 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,411 @@
|
|
|
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
|
+
import { describe, it, expect } from '@jest/globals';
|
|
11
|
+
import fc from 'fast-check';
|
|
12
|
+
import { formatTagName, formatTagNameFromString } 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
|
+
* Validates that a tag name follows the format v{MAJOR}.{MINOR}.{PATCH}
|
|
28
|
+
* where each component is a non-negative integer
|
|
29
|
+
*/
|
|
30
|
+
function isValidTagFormat(tagName) {
|
|
31
|
+
// Must start with 'v'
|
|
32
|
+
if (!tagName.startsWith('v')) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Remove 'v' prefix and split by '.'
|
|
36
|
+
const versionPart = tagName.slice(1);
|
|
37
|
+
const parts = versionPart.split('.');
|
|
38
|
+
// Must have exactly 3 parts
|
|
39
|
+
if (parts.length !== 3) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// Each part must be a non-negative integer
|
|
43
|
+
for (const part of parts) {
|
|
44
|
+
// Must not be empty
|
|
45
|
+
if (part.length === 0) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// Must be all digits (non-negative integer)
|
|
49
|
+
if (!/^\d+$/.test(part)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
// Must be a valid number
|
|
53
|
+
const num = parseInt(part, 10);
|
|
54
|
+
if (isNaN(num) || num < 0) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extracts version components from a tag name
|
|
62
|
+
*/
|
|
63
|
+
function extractVersionComponents(tagName) {
|
|
64
|
+
if (!tagName.startsWith('v')) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const versionPart = tagName.slice(1);
|
|
68
|
+
const parts = versionPart.split('.');
|
|
69
|
+
if (parts.length !== 3) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const major = parseInt(parts[0], 10);
|
|
73
|
+
const minor = parseInt(parts[1], 10);
|
|
74
|
+
const patch = parseInt(parts[2], 10);
|
|
75
|
+
if (isNaN(major) || isNaN(minor) || isNaN(patch)) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return { major, minor, patch };
|
|
79
|
+
}
|
|
80
|
+
describe('Feature: pipeline-release-support, Property 4: Git Tag Format Compliance', () => {
|
|
81
|
+
describe('Format Validation', () => {
|
|
82
|
+
/**
|
|
83
|
+
* For any semantic version, the generated tag should follow the v{MAJOR}.{MINOR}.{PATCH} format
|
|
84
|
+
*/
|
|
85
|
+
it('should generate tags in the correct format for any semantic version', () => {
|
|
86
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
87
|
+
const tagName = formatTagName(version);
|
|
88
|
+
// Property: Tag should follow the correct format
|
|
89
|
+
expect(isValidTagFormat(tagName)).toBe(true);
|
|
90
|
+
return true;
|
|
91
|
+
}), { numRuns: 100 });
|
|
92
|
+
});
|
|
93
|
+
/**
|
|
94
|
+
* For any version string, the generated tag should follow the v{MAJOR}.{MINOR}.{PATCH} format
|
|
95
|
+
*/
|
|
96
|
+
it('should generate tags in the correct format for any version string', () => {
|
|
97
|
+
fc.assert(fc.property(versionStringArb, (versionString) => {
|
|
98
|
+
const tagName = formatTagNameFromString(versionString);
|
|
99
|
+
// Property: Tag should follow the correct format
|
|
100
|
+
expect(isValidTagFormat(tagName)).toBe(true);
|
|
101
|
+
return true;
|
|
102
|
+
}), { numRuns: 100 });
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe('Prefix Requirement', () => {
|
|
106
|
+
/**
|
|
107
|
+
* For any semantic version, the tag should start with 'v'
|
|
108
|
+
*/
|
|
109
|
+
it('should always start with v prefix', () => {
|
|
110
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
111
|
+
const tagName = formatTagName(version);
|
|
112
|
+
// Property: Tag must start with 'v'
|
|
113
|
+
expect(tagName.startsWith('v')).toBe(true);
|
|
114
|
+
expect(tagName[0]).toBe('v');
|
|
115
|
+
return true;
|
|
116
|
+
}), { numRuns: 100 });
|
|
117
|
+
});
|
|
118
|
+
/**
|
|
119
|
+
* For any version string, the tag should start with 'v'
|
|
120
|
+
*/
|
|
121
|
+
it('should always start with v prefix for version strings', () => {
|
|
122
|
+
fc.assert(fc.property(versionStringArb, (versionString) => {
|
|
123
|
+
const tagName = formatTagNameFromString(versionString);
|
|
124
|
+
// Property: Tag must start with 'v'
|
|
125
|
+
expect(tagName.startsWith('v')).toBe(true);
|
|
126
|
+
return true;
|
|
127
|
+
}), { numRuns: 100 });
|
|
128
|
+
});
|
|
129
|
+
/**
|
|
130
|
+
* For any version string with existing 'v' prefix, should not duplicate the prefix
|
|
131
|
+
*/
|
|
132
|
+
it('should not duplicate v prefix when already present', () => {
|
|
133
|
+
fc.assert(fc.property(versionStringArb, (versionString) => {
|
|
134
|
+
const tagName = formatTagNameFromString(`v${versionString}`);
|
|
135
|
+
// Property: Should have exactly one 'v' at the start
|
|
136
|
+
expect(tagName.startsWith('v')).toBe(true);
|
|
137
|
+
expect(tagName.startsWith('vv')).toBe(false);
|
|
138
|
+
// Property: Should match the format without duplicate prefix
|
|
139
|
+
expect(tagName).toBe(`v${versionString}`);
|
|
140
|
+
return true;
|
|
141
|
+
}), { numRuns: 100 });
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
describe('Component Structure', () => {
|
|
145
|
+
/**
|
|
146
|
+
* For any semantic version, the tag should have exactly three numeric components
|
|
147
|
+
*/
|
|
148
|
+
it('should have exactly three numeric components separated by dots', () => {
|
|
149
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
150
|
+
const tagName = formatTagName(version);
|
|
151
|
+
// Remove 'v' prefix and split
|
|
152
|
+
const versionPart = tagName.slice(1);
|
|
153
|
+
const parts = versionPart.split('.');
|
|
154
|
+
// Property: Must have exactly 3 parts
|
|
155
|
+
expect(parts.length).toBe(3);
|
|
156
|
+
// Property: Each part must be numeric
|
|
157
|
+
for (const part of parts) {
|
|
158
|
+
expect(/^\d+$/.test(part)).toBe(true);
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
}), { numRuns: 100 });
|
|
162
|
+
});
|
|
163
|
+
/**
|
|
164
|
+
* For any semantic version, each component should be a non-negative integer
|
|
165
|
+
*/
|
|
166
|
+
it('should have non-negative integer components', () => {
|
|
167
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
168
|
+
const tagName = formatTagName(version);
|
|
169
|
+
const components = extractVersionComponents(tagName);
|
|
170
|
+
// Property: Components should be extractable
|
|
171
|
+
expect(components).not.toBeNull();
|
|
172
|
+
// Property: Each component should be non-negative
|
|
173
|
+
expect(components.major).toBeGreaterThanOrEqual(0);
|
|
174
|
+
expect(components.minor).toBeGreaterThanOrEqual(0);
|
|
175
|
+
expect(components.patch).toBeGreaterThanOrEqual(0);
|
|
176
|
+
// Property: Each component should be an integer
|
|
177
|
+
expect(Number.isInteger(components.major)).toBe(true);
|
|
178
|
+
expect(Number.isInteger(components.minor)).toBe(true);
|
|
179
|
+
expect(Number.isInteger(components.patch)).toBe(true);
|
|
180
|
+
return true;
|
|
181
|
+
}), { numRuns: 100 });
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
describe('Version Preservation', () => {
|
|
185
|
+
/**
|
|
186
|
+
* For any semantic version, the tag should preserve the exact version numbers
|
|
187
|
+
*/
|
|
188
|
+
it('should preserve the exact version numbers in the tag', () => {
|
|
189
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
190
|
+
const tagName = formatTagName(version);
|
|
191
|
+
const components = extractVersionComponents(tagName);
|
|
192
|
+
// Property: Components should match the input version
|
|
193
|
+
expect(components).not.toBeNull();
|
|
194
|
+
expect(components.major).toBe(version.major);
|
|
195
|
+
expect(components.minor).toBe(version.minor);
|
|
196
|
+
expect(components.patch).toBe(version.patch);
|
|
197
|
+
return true;
|
|
198
|
+
}), { numRuns: 100 });
|
|
199
|
+
});
|
|
200
|
+
/**
|
|
201
|
+
* For any version string, the tag should preserve the exact version numbers
|
|
202
|
+
*/
|
|
203
|
+
it('should preserve the exact version numbers from version string', () => {
|
|
204
|
+
fc.assert(fc.property(fc.tuple(fc.nat(1000), fc.nat(1000), fc.nat(1000)), ([major, minor, patch]) => {
|
|
205
|
+
const versionString = `${major}.${minor}.${patch}`;
|
|
206
|
+
const tagName = formatTagNameFromString(versionString);
|
|
207
|
+
const components = extractVersionComponents(tagName);
|
|
208
|
+
// Property: Components should match the input version
|
|
209
|
+
expect(components).not.toBeNull();
|
|
210
|
+
expect(components.major).toBe(major);
|
|
211
|
+
expect(components.minor).toBe(minor);
|
|
212
|
+
expect(components.patch).toBe(patch);
|
|
213
|
+
return true;
|
|
214
|
+
}), { numRuns: 100 });
|
|
215
|
+
});
|
|
216
|
+
/**
|
|
217
|
+
* For any semantic version, the tag should be reconstructible to the original version
|
|
218
|
+
*/
|
|
219
|
+
it('should allow reconstruction of the original version from the tag', () => {
|
|
220
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
221
|
+
const tagName = formatTagName(version);
|
|
222
|
+
// Property: Should be able to reconstruct the version
|
|
223
|
+
const reconstructed = tagName.slice(1); // Remove 'v'
|
|
224
|
+
const expected = `${version.major}.${version.minor}.${version.patch}`;
|
|
225
|
+
expect(reconstructed).toBe(expected);
|
|
226
|
+
return true;
|
|
227
|
+
}), { numRuns: 100 });
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
describe('Edge Cases', () => {
|
|
231
|
+
/**
|
|
232
|
+
* For version 0.0.0, the tag should be v0.0.0
|
|
233
|
+
*/
|
|
234
|
+
it('should handle version 0.0.0 correctly', () => {
|
|
235
|
+
const version = { major: 0, minor: 0, patch: 0 };
|
|
236
|
+
const tagName = formatTagName(version);
|
|
237
|
+
// Property: Should follow the format
|
|
238
|
+
expect(isValidTagFormat(tagName)).toBe(true);
|
|
239
|
+
expect(tagName).toBe('v0.0.0');
|
|
240
|
+
});
|
|
241
|
+
/**
|
|
242
|
+
* For any version with zero components, the tag should still be valid
|
|
243
|
+
*/
|
|
244
|
+
it('should handle versions with zero components', () => {
|
|
245
|
+
fc.assert(fc.property(fc.record({
|
|
246
|
+
major: fc.constantFrom(0),
|
|
247
|
+
minor: fc.nat(100),
|
|
248
|
+
patch: fc.nat(100),
|
|
249
|
+
}), (version) => {
|
|
250
|
+
const tagName = formatTagName(version);
|
|
251
|
+
// Property: Should follow the format
|
|
252
|
+
expect(isValidTagFormat(tagName)).toBe(true);
|
|
253
|
+
// Property: Should preserve the zero
|
|
254
|
+
expect(tagName.startsWith('v0.')).toBe(true);
|
|
255
|
+
return true;
|
|
256
|
+
}), { numRuns: 100 });
|
|
257
|
+
});
|
|
258
|
+
/**
|
|
259
|
+
* For large version numbers, the tag should still be valid
|
|
260
|
+
*/
|
|
261
|
+
it('should handle large version numbers', () => {
|
|
262
|
+
fc.assert(fc.property(fc.record({
|
|
263
|
+
major: fc.integer({ min: 1000, max: 999999 }),
|
|
264
|
+
minor: fc.integer({ min: 1000, max: 999999 }),
|
|
265
|
+
patch: fc.integer({ min: 1000, max: 999999 }),
|
|
266
|
+
}), (version) => {
|
|
267
|
+
const tagName = formatTagName(version);
|
|
268
|
+
// Property: Should follow the format
|
|
269
|
+
expect(isValidTagFormat(tagName)).toBe(true);
|
|
270
|
+
// Property: Should preserve large numbers
|
|
271
|
+
const components = extractVersionComponents(tagName);
|
|
272
|
+
expect(components.major).toBe(version.major);
|
|
273
|
+
expect(components.minor).toBe(version.minor);
|
|
274
|
+
expect(components.patch).toBe(version.patch);
|
|
275
|
+
return true;
|
|
276
|
+
}), { numRuns: 100 });
|
|
277
|
+
});
|
|
278
|
+
/**
|
|
279
|
+
* For single-digit components, the tag should not add leading zeros
|
|
280
|
+
*/
|
|
281
|
+
it('should not add leading zeros to single-digit components', () => {
|
|
282
|
+
fc.assert(fc.property(fc.record({
|
|
283
|
+
major: fc.integer({ min: 0, max: 9 }),
|
|
284
|
+
minor: fc.integer({ min: 0, max: 9 }),
|
|
285
|
+
patch: fc.integer({ min: 0, max: 9 }),
|
|
286
|
+
}), (version) => {
|
|
287
|
+
const tagName = formatTagName(version);
|
|
288
|
+
// Property: Should not have leading zeros
|
|
289
|
+
const versionPart = tagName.slice(1);
|
|
290
|
+
const parts = versionPart.split('.');
|
|
291
|
+
for (let i = 0; i < parts.length; i++) {
|
|
292
|
+
const part = parts[i];
|
|
293
|
+
const value = [version.major, version.minor, version.patch][i];
|
|
294
|
+
// If value is 0, part should be "0", not "00" or "000"
|
|
295
|
+
// If value is non-zero, part should not start with "0"
|
|
296
|
+
if (value === 0) {
|
|
297
|
+
expect(part).toBe('0');
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
expect(part).toBe(value.toString());
|
|
301
|
+
expect(part.startsWith('0')).toBe(false);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return true;
|
|
305
|
+
}), { numRuns: 100 });
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
describe('Format Consistency', () => {
|
|
309
|
+
/**
|
|
310
|
+
* For any semantic version, the tag format should be consistent
|
|
311
|
+
*/
|
|
312
|
+
it('should produce consistent format across multiple calls', () => {
|
|
313
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
314
|
+
const tagName1 = formatTagName(version);
|
|
315
|
+
const tagName2 = formatTagName(version);
|
|
316
|
+
const tagName3 = formatTagName(version);
|
|
317
|
+
// Property: Multiple calls should produce identical results
|
|
318
|
+
expect(tagName1).toBe(tagName2);
|
|
319
|
+
expect(tagName2).toBe(tagName3);
|
|
320
|
+
return true;
|
|
321
|
+
}), { numRuns: 100 });
|
|
322
|
+
});
|
|
323
|
+
/**
|
|
324
|
+
* For any version string, the tag format should be consistent
|
|
325
|
+
*/
|
|
326
|
+
it('should produce consistent format for version strings', () => {
|
|
327
|
+
fc.assert(fc.property(versionStringArb, (versionString) => {
|
|
328
|
+
const tagName1 = formatTagNameFromString(versionString);
|
|
329
|
+
const tagName2 = formatTagNameFromString(versionString);
|
|
330
|
+
// Property: Multiple calls should produce identical results
|
|
331
|
+
expect(tagName1).toBe(tagName2);
|
|
332
|
+
return true;
|
|
333
|
+
}), { numRuns: 100 });
|
|
334
|
+
});
|
|
335
|
+
/**
|
|
336
|
+
* For any semantic version, both formatting methods should produce the same result
|
|
337
|
+
*/
|
|
338
|
+
it('should produce same result from SemanticVersion and version string', () => {
|
|
339
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
340
|
+
const tagFromObject = formatTagName(version);
|
|
341
|
+
const versionString = `${version.major}.${version.minor}.${version.patch}`;
|
|
342
|
+
const tagFromString = formatTagNameFromString(versionString);
|
|
343
|
+
// Property: Both methods should produce identical tags
|
|
344
|
+
expect(tagFromObject).toBe(tagFromString);
|
|
345
|
+
return true;
|
|
346
|
+
}), { numRuns: 100 });
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
describe('No Extra Characters', () => {
|
|
350
|
+
/**
|
|
351
|
+
* For any semantic version, the tag should not contain extra characters
|
|
352
|
+
*/
|
|
353
|
+
it('should not contain any extra characters beyond the format', () => {
|
|
354
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
355
|
+
const tagName = formatTagName(version);
|
|
356
|
+
// Property: Should match the exact format with no extras
|
|
357
|
+
const expectedPattern = /^v\d+\.\d+\.\d+$/;
|
|
358
|
+
expect(tagName).toMatch(expectedPattern);
|
|
359
|
+
// Property: Should not contain spaces, hyphens, or other characters
|
|
360
|
+
expect(tagName).not.toContain(' ');
|
|
361
|
+
expect(tagName).not.toContain('-');
|
|
362
|
+
expect(tagName).not.toContain('_');
|
|
363
|
+
expect(tagName).not.toContain('+');
|
|
364
|
+
return true;
|
|
365
|
+
}), { numRuns: 100 });
|
|
366
|
+
});
|
|
367
|
+
/**
|
|
368
|
+
* For any semantic version, the tag should have the exact expected length
|
|
369
|
+
*/
|
|
370
|
+
it('should have the expected length based on component digits', () => {
|
|
371
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
372
|
+
const tagName = formatTagName(version);
|
|
373
|
+
// Calculate expected length: 'v' + digits + 2 dots
|
|
374
|
+
const majorDigits = version.major.toString().length;
|
|
375
|
+
const minorDigits = version.minor.toString().length;
|
|
376
|
+
const patchDigits = version.patch.toString().length;
|
|
377
|
+
const expectedLength = 1 + majorDigits + 1 + minorDigits + 1 + patchDigits;
|
|
378
|
+
// Property: Length should match expected
|
|
379
|
+
expect(tagName.length).toBe(expectedLength);
|
|
380
|
+
return true;
|
|
381
|
+
}), { numRuns: 100 });
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
describe('Regex Pattern Matching', () => {
|
|
385
|
+
/**
|
|
386
|
+
* For any semantic version, the tag should match the standard semver tag pattern
|
|
387
|
+
*/
|
|
388
|
+
it('should match the standard semantic version tag pattern', () => {
|
|
389
|
+
fc.assert(fc.property(semanticVersionArb, (version) => {
|
|
390
|
+
const tagName = formatTagName(version);
|
|
391
|
+
// Property: Should match the semver tag pattern
|
|
392
|
+
const semverTagPattern = /^v\d+\.\d+\.\d+$/;
|
|
393
|
+
expect(tagName).toMatch(semverTagPattern);
|
|
394
|
+
return true;
|
|
395
|
+
}), { numRuns: 100 });
|
|
396
|
+
});
|
|
397
|
+
/**
|
|
398
|
+
* For any version string, the tag should match the standard semver tag pattern
|
|
399
|
+
*/
|
|
400
|
+
it('should match the standard semantic version tag pattern for version strings', () => {
|
|
401
|
+
fc.assert(fc.property(versionStringArb, (versionString) => {
|
|
402
|
+
const tagName = formatTagNameFromString(versionString);
|
|
403
|
+
// Property: Should match the semver tag pattern
|
|
404
|
+
const semverTagPattern = /^v\d+\.\d+\.\d+$/;
|
|
405
|
+
expect(tagName).toMatch(semverTagPattern);
|
|
406
|
+
return true;
|
|
407
|
+
}), { numRuns: 100 });
|
|
408
|
+
});
|
|
409
|
+
});
|
|
410
|
+
});
|
|
411
|
+
//# sourceMappingURL=git-tag-format.property.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-format.property.test.js","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-format.property.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-utils.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-utils.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unit tests for Git tag utilities
|
|
3
|
+
* Tests tag name formatting, annotation creation, and timestamp formatting
|
|
4
|
+
* Requirements: 4.1, 4.4
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect } from '@jest/globals';
|
|
7
|
+
import { formatTagName, formatTagNameFromString, formatTimestamp, createTagAnnotation, createTagAnnotationFromString, } from '../git-tag-utils.js';
|
|
8
|
+
describe('Git Tag Utilities Unit Tests', () => {
|
|
9
|
+
describe('formatTagName - Tag Name Formatting (Requirement 4.1)', () => {
|
|
10
|
+
it('should format tag name with v prefix', () => {
|
|
11
|
+
const version = { major: 1, minor: 2, patch: 3 };
|
|
12
|
+
expect(formatTagName(version)).toBe('v1.2.3');
|
|
13
|
+
});
|
|
14
|
+
it('should format tag name for version 0.0.0', () => {
|
|
15
|
+
const version = { major: 0, minor: 0, patch: 0 };
|
|
16
|
+
expect(formatTagName(version)).toBe('v0.0.0');
|
|
17
|
+
});
|
|
18
|
+
it('should format tag name with large version numbers', () => {
|
|
19
|
+
const version = { major: 999, minor: 888, patch: 777 };
|
|
20
|
+
expect(formatTagName(version)).toBe('v999.888.777');
|
|
21
|
+
});
|
|
22
|
+
it('should format tag name with single digit components', () => {
|
|
23
|
+
const version = { major: 1, minor: 0, patch: 0 };
|
|
24
|
+
expect(formatTagName(version)).toBe('v1.0.0');
|
|
25
|
+
});
|
|
26
|
+
it('should format tag name with multi-digit components', () => {
|
|
27
|
+
const version = { major: 12, minor: 34, patch: 56 };
|
|
28
|
+
expect(formatTagName(version)).toBe('v12.34.56');
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('formatTagNameFromString - Tag Name from String (Requirement 4.1)', () => {
|
|
32
|
+
it('should format tag name from version string', () => {
|
|
33
|
+
expect(formatTagNameFromString('1.2.3')).toBe('v1.2.3');
|
|
34
|
+
});
|
|
35
|
+
it('should handle version string with existing v prefix', () => {
|
|
36
|
+
expect(formatTagNameFromString('v1.2.3')).toBe('v1.2.3');
|
|
37
|
+
});
|
|
38
|
+
it('should format tag name for version 0.0.0', () => {
|
|
39
|
+
expect(formatTagNameFromString('0.0.0')).toBe('v0.0.0');
|
|
40
|
+
});
|
|
41
|
+
it('should format tag name with large version numbers', () => {
|
|
42
|
+
expect(formatTagNameFromString('999.888.777')).toBe('v999.888.777');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('formatTimestamp - Timestamp Formatting (Requirement 4.4)', () => {
|
|
46
|
+
it('should format timestamp in ISO 8601 format', () => {
|
|
47
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
48
|
+
const result = formatTimestamp(date);
|
|
49
|
+
expect(result).toBe('2024-01-15T10:30:00.000Z');
|
|
50
|
+
});
|
|
51
|
+
it('should format current date when no date provided', () => {
|
|
52
|
+
const result = formatTimestamp();
|
|
53
|
+
// Verify it's a valid ISO 8601 format
|
|
54
|
+
expect(result).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/);
|
|
55
|
+
// Verify it can be parsed back to a date
|
|
56
|
+
expect(new Date(result).toISOString()).toBe(result);
|
|
57
|
+
});
|
|
58
|
+
it('should format timestamp with milliseconds', () => {
|
|
59
|
+
const date = new Date('2024-12-31T23:59:59.999Z');
|
|
60
|
+
const result = formatTimestamp(date);
|
|
61
|
+
expect(result).toBe('2024-12-31T23:59:59.999Z');
|
|
62
|
+
});
|
|
63
|
+
it('should format timestamp at epoch', () => {
|
|
64
|
+
const date = new Date(0);
|
|
65
|
+
const result = formatTimestamp(date);
|
|
66
|
+
expect(result).toBe('1970-01-01T00:00:00.000Z');
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('createTagAnnotation - Tag Annotation Creation (Requirement 4.4)', () => {
|
|
70
|
+
it('should create annotation with version and timestamp', () => {
|
|
71
|
+
const version = { major: 1, minor: 2, patch: 3 };
|
|
72
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
73
|
+
const result = createTagAnnotation(version, date);
|
|
74
|
+
expect(result).toBe('Release version 1.2.3\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
75
|
+
});
|
|
76
|
+
it('should create annotation for version 0.0.0', () => {
|
|
77
|
+
const version = { major: 0, minor: 0, patch: 0 };
|
|
78
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
79
|
+
const result = createTagAnnotation(version, date);
|
|
80
|
+
expect(result).toBe('Release version 0.0.0\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
81
|
+
});
|
|
82
|
+
it('should create annotation with current date when no date provided', () => {
|
|
83
|
+
const version = { major: 1, minor: 2, patch: 3 };
|
|
84
|
+
const result = createTagAnnotation(version);
|
|
85
|
+
expect(result).toMatch(/^Release version 1\.2\.3\nCreated at: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/);
|
|
86
|
+
});
|
|
87
|
+
it('should create annotation with large version numbers', () => {
|
|
88
|
+
const version = { major: 999, minor: 888, patch: 777 };
|
|
89
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
90
|
+
const result = createTagAnnotation(version, date);
|
|
91
|
+
expect(result).toBe('Release version 999.888.777\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
92
|
+
});
|
|
93
|
+
it('should include both version and timestamp in annotation', () => {
|
|
94
|
+
const version = { major: 1, minor: 2, patch: 3 };
|
|
95
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
96
|
+
const result = createTagAnnotation(version, date);
|
|
97
|
+
// Verify both components are present
|
|
98
|
+
expect(result).toContain('1.2.3');
|
|
99
|
+
expect(result).toContain('2024-01-15T10:30:00.000Z');
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('createTagAnnotationFromString - Annotation from String (Requirement 4.4)', () => {
|
|
103
|
+
it('should create annotation from version string', () => {
|
|
104
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
105
|
+
const result = createTagAnnotationFromString('1.2.3', date);
|
|
106
|
+
expect(result).toBe('Release version 1.2.3\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
107
|
+
});
|
|
108
|
+
it('should handle version string with v prefix', () => {
|
|
109
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
110
|
+
const result = createTagAnnotationFromString('v1.2.3', date);
|
|
111
|
+
expect(result).toBe('Release version 1.2.3\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
112
|
+
});
|
|
113
|
+
it('should create annotation with current date when no date provided', () => {
|
|
114
|
+
const result = createTagAnnotationFromString('1.2.3');
|
|
115
|
+
expect(result).toMatch(/^Release version 1\.2\.3\nCreated at: \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/);
|
|
116
|
+
});
|
|
117
|
+
it('should create annotation for version 0.0.0', () => {
|
|
118
|
+
const date = new Date('2024-01-15T10:30:00.000Z');
|
|
119
|
+
const result = createTagAnnotationFromString('0.0.0', date);
|
|
120
|
+
expect(result).toBe('Release version 0.0.0\nCreated at: 2024-01-15T10:30:00.000Z');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('Edge Cases', () => {
|
|
124
|
+
it('should handle tag name formatting with zero components', () => {
|
|
125
|
+
const version = { major: 0, minor: 0, patch: 1 };
|
|
126
|
+
expect(formatTagName(version)).toBe('v0.0.1');
|
|
127
|
+
});
|
|
128
|
+
it('should handle annotation with epoch timestamp', () => {
|
|
129
|
+
const version = { major: 1, minor: 0, patch: 0 };
|
|
130
|
+
const date = new Date(0);
|
|
131
|
+
const result = createTagAnnotation(version, date);
|
|
132
|
+
expect(result).toBe('Release version 1.0.0\nCreated at: 1970-01-01T00:00:00.000Z');
|
|
133
|
+
});
|
|
134
|
+
it('should handle annotation with future date', () => {
|
|
135
|
+
const version = { major: 2, minor: 0, patch: 0 };
|
|
136
|
+
const date = new Date('2099-12-31T23:59:59.999Z');
|
|
137
|
+
const result = createTagAnnotation(version, date);
|
|
138
|
+
expect(result).toBe('Release version 2.0.0\nCreated at: 2099-12-31T23:59:59.999Z');
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=git-tag-utils.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-tag-utils.test.js","sourceRoot":"","sources":["../../../src/version/__tests__/git-tag-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-tag-selection.property.test.d.ts","sourceRoot":"","sources":["../../../src/version/__tests__/npm-tag-selection.property.test.ts"],"names":[],"mappings":""}
|