diff --git a/AGENTS.md b/AGENTS.md index 3e36dfe94..3c3bb6977 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -29,6 +29,7 @@ It captures practical rules that prevent avoidable CI and PR churn. - Tests should verify observable behavior changes, not only internal/config state. - Example: for a security option, assert a real secure/insecure behavior difference. - Test-only helper files under `src` (for example `*-test-utils.ts`) must be explicitly excluded from package `tsconfig.build.json` so they are not emitted into `build` and accidentally published. +- Compatibility tests for older major versions should live in separate version-specific test files (for example `-5.test.ts`), instead of being mixed into the latest-image test file. - For substantial changes to GitHub Actions, runner images, Node/npm versions, or release/publish automation, consider running the manual `Node.js Package` workflow as a dry-run publish sanity check. - Select the PR branch as the workflow ref to test publish workflow changes before merging. - Use a representative version input, for example the next planned semver. @@ -55,6 +56,7 @@ It captures practical rules that prevent avoidable CI and PR churn. 4. Run required checks: `npm run format`, `npm run lint`, `npm run check-compiles` when touching `packages/testcontainers` APIs consumed by modules, and targeted tests. 5. Verify git diff only contains intended files. 6. Never commit, push, or post on GitHub (issues, PRs, or comments) without first sharing the proposed diff/message and getting explicit user approval. + - If `gh auth status` reports or times out on unrelated hosts/accounts, do not treat that as blocking. Confirm the GitHub host needed for the current repository is authenticated and has the required scopes. 7. Commit with focused message(s), using `git commit --no-verify`. - Never bypass signing (for example, do not use `--no-gpg-sign`). - If signing fails (for example, passphrase/key issues), stop and ask the user to resolve signing, then retry. diff --git a/packages/modules/clickhouse/Dockerfile b/packages/modules/clickhouse/Dockerfile index 961d22e10..91ffd9e03 100644 --- a/packages/modules/clickhouse/Dockerfile +++ b/packages/modules/clickhouse/Dockerfile @@ -1 +1 @@ -FROM clickhouse/clickhouse-server:26.4-alpine +FROM clickhouse/clickhouse-server:26.5-alpine diff --git a/packages/modules/gcloud/Dockerfile b/packages/modules/gcloud/Dockerfile index 2f9918a86..7b3ae8738 100644 --- a/packages/modules/gcloud/Dockerfile +++ b/packages/modules/gcloud/Dockerfile @@ -1,4 +1,4 @@ -FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:568.0.0-emulators +FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:569.0.0-emulators FROM fsouza/fake-gcs-server:1.54.0 -FROM ghcr.io/goccy/bigquery-emulator:0.6.6 +FROM ghcr.io/goccy/bigquery-emulator:0.7.2 FROM gcr.io/cloud-spanner-emulator/emulator:1.5.53 \ No newline at end of file diff --git a/packages/modules/k3s/Dockerfile b/packages/modules/k3s/Dockerfile index cce56993d..0a875d268 100644 --- a/packages/modules/k3s/Dockerfile +++ b/packages/modules/k3s/Dockerfile @@ -1,2 +1,2 @@ -FROM rancher/k3s:v1.36.0-k3s1 +FROM rancher/k3s:v1.36.1-k3s1 FROM rancher/kubectl:v1.36.0 \ No newline at end of file diff --git a/packages/modules/localstack/Dockerfile b/packages/modules/localstack/Dockerfile index 6eb9d848f..5d6560bff 100644 --- a/packages/modules/localstack/Dockerfile +++ b/packages/modules/localstack/Dockerfile @@ -1,2 +1,2 @@ FROM localstack/localstack:4.14.0 -FROM amazon/aws-cli:2.34.48 \ No newline at end of file +FROM amazon/aws-cli:2.34.53 \ No newline at end of file diff --git a/packages/modules/mockserver/Dockerfile b/packages/modules/mockserver/Dockerfile index b33ecc065..f24cc6866 100644 --- a/packages/modules/mockserver/Dockerfile +++ b/packages/modules/mockserver/Dockerfile @@ -1 +1 @@ -FROM mockserver/mockserver:5.15.0 +FROM mockserver/mockserver:6.0.0 diff --git a/packages/modules/mockserver/src/mockserver-5.test.ts b/packages/modules/mockserver/src/mockserver-5.test.ts new file mode 100644 index 000000000..832601141 --- /dev/null +++ b/packages/modules/mockserver/src/mockserver-5.test.ts @@ -0,0 +1,30 @@ +import { mockServerClient } from "mockserver-client"; +import superagent from "superagent"; +import { MockserverContainer } from "./mockserver-container"; + +const IMAGE = "mockserver/mockserver:5.15.0"; + +describe("MockserverContainer 5", { timeout: 240_000 }, () => { + it("should start and accept mocks", async () => { + await using container = await new MockserverContainer(IMAGE).start(); + + const client = mockServerClient(container.getHost(), container.getMockserverPort()); + await client.mockAnyResponse({ + httpRequest: { + method: "GET", + path: "/foo", + }, + httpResponse: { + body: { + string: "bar", + }, + statusCode: 200, + }, + }); + + const response = await superagent.get(`${container.getUrl()}/foo`); + + expect(response.statusCode).toBe(200); + expect(response.text).toBe("bar"); + }); +}); diff --git a/packages/modules/mockserver/src/mockserver-container.ts b/packages/modules/mockserver/src/mockserver-container.ts index 5b31becf8..b21f00c0b 100644 --- a/packages/modules/mockserver/src/mockserver-container.ts +++ b/packages/modules/mockserver/src/mockserver-container.ts @@ -1,4 +1,4 @@ -import { AbstractStartedContainer, GenericContainer, Wait } from "testcontainers"; +import { AbstractStartedContainer, GenericContainer, Wait, WaitStrategy } from "testcontainers"; export class StartedMockserverContainer extends AbstractStartedContainer { getMockserverPort(): number { @@ -20,7 +20,7 @@ export class MockserverContainer extends GenericContainer { constructor(image: string) { super(image); - this.withWaitStrategy(Wait.forAll([Wait.forLogMessage(/started on port: 1080/)])).withStartupTimeout(120_000); + this.withStartupTimeout(120_000); } override async start(): Promise { @@ -28,4 +28,8 @@ export class MockserverContainer extends GenericContainer { return new StartedMockserverContainer(await super.start()); } + + protected override getDefaultWaitStrategy(): WaitStrategy { + return Wait.forLogMessage(/started on port: 1080/); + } } diff --git a/packages/modules/nats/Dockerfile b/packages/modules/nats/Dockerfile index 2034ed00c..c41f8cfb3 100644 --- a/packages/modules/nats/Dockerfile +++ b/packages/modules/nats/Dockerfile @@ -1 +1 @@ -FROM nats:2.14.0-alpine +FROM nats:2.14.1-alpine diff --git a/packages/modules/qdrant/Dockerfile b/packages/modules/qdrant/Dockerfile index 4b8175133..b664ea4bb 100644 --- a/packages/modules/qdrant/Dockerfile +++ b/packages/modules/qdrant/Dockerfile @@ -1 +1 @@ -FROM qdrant/qdrant:v1.18.0 +FROM qdrant/qdrant:v1.18.1 diff --git a/packages/modules/redpanda/Dockerfile b/packages/modules/redpanda/Dockerfile index ba9fd81e4..00f2cd11f 100644 --- a/packages/modules/redpanda/Dockerfile +++ b/packages/modules/redpanda/Dockerfile @@ -1 +1 @@ -FROM docker.io/redpandadata/redpanda:v26.1.8 +FROM docker.io/redpandadata/redpanda:v26.1.9 diff --git a/packages/modules/selenium/Dockerfile b/packages/modules/selenium/Dockerfile index a183f8ad3..82c6e5660 100644 --- a/packages/modules/selenium/Dockerfile +++ b/packages/modules/selenium/Dockerfile @@ -1,4 +1,4 @@ -FROM selenium/standalone-chrome:147.0 +FROM selenium/standalone-chrome:148.0 FROM seleniarm/standalone-chromium:124.0 -FROM selenium/standalone-firefox:149.0 +FROM selenium/standalone-firefox:151.0 FROM seleniarm/standalone-firefox:125.0 \ No newline at end of file diff --git a/packages/modules/valkey/Dockerfile b/packages/modules/valkey/Dockerfile index c57ea1e6f..e33efdc9e 100644 --- a/packages/modules/valkey/Dockerfile +++ b/packages/modules/valkey/Dockerfile @@ -1 +1 @@ -FROM valkey/valkey:9.0 +FROM valkey/valkey:9.1 diff --git a/packages/modules/vault/Dockerfile b/packages/modules/vault/Dockerfile index 2f294e19d..95ddae837 100644 --- a/packages/modules/vault/Dockerfile +++ b/packages/modules/vault/Dockerfile @@ -1 +1 @@ -FROM hashicorp/vault:1.21.4 +FROM hashicorp/vault:2.0.1