diff --git a/integrations/test/version_test.ts b/integrations/test/version_test.ts index 9f5a6900a..52bcd8de1 100644 --- a/integrations/test/version_test.ts +++ b/integrations/test/version_test.ts @@ -5,10 +5,24 @@ */ import {version} from '@google/adk-integrations'; +import {readFileSync} from 'node:fs'; import {describe, expect, it} from 'vitest'; +const SEMVER_PATTERN = + /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/; + +// release-please rewrites src/version.ts and package.json in the same release +// commit, so package.json is a self-maintaining oracle; a literal here rots. +const packageJson = JSON.parse( + readFileSync(new URL('../package.json', import.meta.url), 'utf-8'), +) as {version: string}; + describe('version', () => { - it('should return the correct version', () => { - expect(version).toBe('1.3.0'); + it('should match the version declared in package.json', () => { + expect(version).toBe(packageJson.version); + }); + + it('should be a valid semver string', () => { + expect(version).toMatch(SEMVER_PATTERN); }); }); diff --git a/package.json b/package.json index 86cee8241..d5b10ea5d 100644 --- a/package.json +++ b/package.json @@ -24,12 +24,12 @@ "docs:generate": "typedoc", "docs:serve": "http-server api-reference/typescript", "docs:check": "typedoc --emit none --treatWarningsAsErrors", - "test": "vitest --project unit:core --project unit:dev --project integration --project e2e", - "test:unit": "vitest --project unit:core --project unit:dev", + "test": "vitest --project unit:core --project unit:dev --project unit:integrations --project integration --project e2e", + "test:unit": "vitest --project unit:core --project unit:dev --project unit:integrations", "test:integration": "vitest --project integration", "test:e2e": "vitest --project e2e", "test:cross-language": "vitest --project cross-language", - "test:coverage": "vitest run --project unit:core --project unit:dev --project integration --project e2e --coverage", + "test:coverage": "vitest run --project unit:core --project unit:dev --project unit:integrations --project integration --project e2e --coverage", "prepare": "husky" }, "workspaces": [