Skip to content

Commit bd6b15b

Browse files
Run some tests sequentially
1 parent 4daf59e commit bd6b15b

File tree

13 files changed

+247
-241
lines changed

13 files changed

+247
-241
lines changed

packages/testcontainers/src/container-runtime/auth/credential-provider.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ vi.mock("child_process", () => ({
1111
spawn: (...args: unknown[]) => mockSpawn(...args),
1212
}));
1313

14-
describe("CredentialProvider", () => {
14+
describe.sequential("CredentialProvider", () => {
1515
let credentialProvider: CredentialProvider;
1616
let containerRuntimeConfig: ContainerRuntimeConfig;
1717

packages/testcontainers/src/container-runtime/image-name.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ImageName } from "./image-name";
22

3-
describe("ContainerImage", () => {
3+
describe.sequential("ContainerImage", () => {
44
it("should return whether two image names are equal", () => {
55
const imageName = new ImageName("registry", "image", "tag");
66

@@ -10,7 +10,7 @@ describe("ContainerImage", () => {
1010
expect(imageName.equals(new ImageName("anotherRegistry", "image", "tag"))).toBe(false);
1111
});
1212

13-
describe("string", () => {
13+
describe.sequential("string", () => {
1414
it("should work with registry", () => {
1515
const imageName = new ImageName("registry", "image", "tag");
1616
expect(imageName.string).toBe("registry/image:tag");
@@ -67,7 +67,7 @@ describe("ContainerImage", () => {
6767
);
6868
});
6969

70-
describe("fromString", () => {
70+
describe.sequential("fromString", () => {
7171
it("should work", () => {
7272
const imageName = ImageName.fromString("image:latest");
7373

@@ -154,7 +154,7 @@ describe("ContainerImage", () => {
154154
});
155155
});
156156

157-
describe.each([
157+
describe.sequential.each([
158158
{ customRegistry: "custom.com/registry", expectedRegistry: "custom.com", expectedImagePrefix: "registry/" },
159159
{ customRegistry: "custom.com/registry/", expectedRegistry: "custom.com", expectedImagePrefix: "registry/" },
160160
{ customRegistry: "custom.com", expectedRegistry: "custom.com", expectedImagePrefix: "" },

packages/testcontainers/src/container-runtime/strategies/configuration-strategy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ vi.mock("fs/promises");
88
const mockGetContainerRuntimeConfig = vi.mocked(getContainerRuntimeConfig);
99
const mockReadFile = vi.mocked(readFile);
1010

11-
describe("ConfigurationStrategy", () => {
11+
describe.sequential("ConfigurationStrategy", () => {
1212
it("should return undefined if no docker host is set", async () => {
1313
mockGetContainerRuntimeConfig.mockResolvedValueOnce({ dockerHost: undefined });
1414

packages/testcontainers/src/container-runtime/strategies/rootless-unix-socket-strategy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { RootlessUnixSocketStrategy } from "./rootless-unix-socket-strategy";
55

66
vi.mock("fs", () => ({ existsSync: vi.fn() }));
77

8-
describe("RootlessUnixSocketStrategy", () => {
8+
describe.sequential("RootlessUnixSocketStrategy", () => {
99
const mockExistsSync = vi.mocked(existsSync);
1010

1111
it("should return undefined for non-linux and non-darwin platforms", async () => {

packages/testcontainers/src/container-runtime/strategies/testcontainers-host-strategy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ vi.mock("./utils/config", () => ({
55
getContainerRuntimeConfig: () => mockGetContainerRuntimeConfig(),
66
}));
77

8-
describe("TestcontainersHostStrategy", () => {
8+
describe.sequential("TestcontainersHostStrategy", () => {
99
it("should return undefined when tc.host property is not set", async () => {
1010
mockGetContainerRuntimeConfig.mockResolvedValue({});
1111

packages/testcontainers/src/container-runtime/strategies/unix-socket-strategy.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { UnixSocketStrategy } from "./unix-socket-strategy";
44
vi.mock("fs");
55
const mockExistsSync = vi.mocked(existsSync);
66

7-
describe("UnixSocketStrategy", () => {
7+
describe.sequential("UnixSocketStrategy", () => {
88
beforeEach(() => {
99
mockExistsSync.mockReturnValue(true);
1010
});

packages/testcontainers/src/container-runtime/strategies/utils/config.test.ts

Lines changed: 81 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -5,122 +5,124 @@ vi.mock("fs", () => ({ existsSync: mockExistsSync }));
55
const mockReadFile = vi.fn();
66
vi.mock("fs/promises", () => ({ readFile: mockReadFile }));
77

8-
let getContainerRuntimeConfig: GetContainerRuntimeConfig;
8+
describe.sequential("Config", () => {
9+
let getContainerRuntimeConfig: GetContainerRuntimeConfig;
910

10-
beforeEach(async () => {
11-
getContainerRuntimeConfig = (await import("./config")).getContainerRuntimeConfig;
12-
});
13-
14-
afterEach(() => {
15-
vi.resetModules();
16-
});
17-
18-
test("should not set anything", async () => {
19-
const dockerClientConfig = await getContainerRuntimeConfig({});
20-
21-
expect(dockerClientConfig.dockerHost).toBeUndefined();
22-
expect(dockerClientConfig.dockerTlsVerify).toBeUndefined();
23-
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
24-
});
11+
beforeEach(async () => {
12+
getContainerRuntimeConfig = (await import("./config")).getContainerRuntimeConfig;
13+
});
2514

26-
describe("environment", () => {
27-
beforeEach(() => {
28-
mockExistsSync.mockReturnValue(false);
15+
afterEach(() => {
16+
vi.resetModules();
2917
});
3018

31-
test("should set the host", async () => {
32-
const dockerClientConfig = await getContainerRuntimeConfig({
33-
DOCKER_HOST: "tcp://my.docker.host:1234",
34-
});
19+
it("should not set anything", async () => {
20+
const dockerClientConfig = await getContainerRuntimeConfig({});
3521

36-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
22+
expect(dockerClientConfig.dockerHost).toBeUndefined();
3723
expect(dockerClientConfig.dockerTlsVerify).toBeUndefined();
3824
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
3925
});
4026

41-
test("should set TLS verify", async () => {
42-
const dockerClientConfig = await getContainerRuntimeConfig({
43-
DOCKER_HOST: "tcp://my.docker.host:1234",
44-
DOCKER_TLS_VERIFY: "1",
27+
describe("environment", () => {
28+
beforeEach(() => {
29+
mockExistsSync.mockReturnValue(false);
4530
});
4631

47-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
48-
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
49-
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
50-
});
32+
it("should set the host", async () => {
33+
const dockerClientConfig = await getContainerRuntimeConfig({
34+
DOCKER_HOST: "tcp://my.docker.host:1234",
35+
});
5136

52-
test("should set the cert path", async () => {
53-
const dockerClientConfig = await getContainerRuntimeConfig({
54-
DOCKER_HOST: "tcp://my.docker.host:1234",
55-
DOCKER_TLS_VERIFY: "1",
56-
DOCKER_CERT_PATH: "/some/path",
37+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
38+
expect(dockerClientConfig.dockerTlsVerify).toBeUndefined();
39+
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
5740
});
5841

59-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
60-
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
61-
expect(dockerClientConfig.dockerCertPath).toBe("/some/path");
62-
});
63-
});
42+
it("should set TLS verify", async () => {
43+
const dockerClientConfig = await getContainerRuntimeConfig({
44+
DOCKER_HOST: "tcp://my.docker.host:1234",
45+
DOCKER_TLS_VERIFY: "1",
46+
});
6447

65-
describe("testcontainers.properties file", () => {
66-
beforeEach(() => {
67-
mockExistsSync.mockReturnValue(true);
48+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
49+
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
50+
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
51+
});
52+
53+
it("should set the cert path", async () => {
54+
const dockerClientConfig = await getContainerRuntimeConfig({
55+
DOCKER_HOST: "tcp://my.docker.host:1234",
56+
DOCKER_TLS_VERIFY: "1",
57+
DOCKER_CERT_PATH: "/some/path",
58+
});
59+
60+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
61+
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
62+
expect(dockerClientConfig.dockerCertPath).toBe("/some/path");
63+
});
6864
});
6965

70-
test("should set the tc host", async () => {
71-
mockReadFile.mockResolvedValueOnce("tc.host=tcp://my.docker.host:1234");
66+
describe("testcontainers.properties file", () => {
67+
beforeEach(() => {
68+
mockExistsSync.mockReturnValue(true);
69+
});
7270

73-
const dockerClientConfig = await getContainerRuntimeConfig({});
71+
it("should set the tc host", async () => {
72+
mockReadFile.mockResolvedValueOnce("tc.host=tcp://my.docker.host:1234");
7473

75-
expect(dockerClientConfig.tcHost).toBe("tcp://my.docker.host:1234");
76-
});
74+
const dockerClientConfig = await getContainerRuntimeConfig({});
7775

78-
test("should set the host", async () => {
79-
mockReadFile.mockResolvedValueOnce("docker.host=tcp://my.docker.host:1234");
76+
expect(dockerClientConfig.tcHost).toBe("tcp://my.docker.host:1234");
77+
});
8078

81-
const dockerClientConfig = await getContainerRuntimeConfig({});
79+
it("should set the host", async () => {
80+
mockReadFile.mockResolvedValueOnce("docker.host=tcp://my.docker.host:1234");
8281

83-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
84-
expect(dockerClientConfig.dockerTlsVerify).toBeUndefined();
85-
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
86-
});
82+
const dockerClientConfig = await getContainerRuntimeConfig({});
83+
84+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
85+
expect(dockerClientConfig.dockerTlsVerify).toBeUndefined();
86+
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
87+
});
8788

88-
test("should set TLS verify", async () => {
89-
mockReadFile.mockResolvedValueOnce(`
89+
it("should set TLS verify", async () => {
90+
mockReadFile.mockResolvedValueOnce(`
9091
docker.host=tcp://my.docker.host:1234
9192
docker.tls.verify=1
9293
`);
9394

94-
const dockerClientConfig = await getContainerRuntimeConfig({});
95+
const dockerClientConfig = await getContainerRuntimeConfig({});
9596

96-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
97-
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
98-
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
99-
});
97+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
98+
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
99+
expect(dockerClientConfig.dockerCertPath).toBeUndefined();
100+
});
100101

101-
test("should set the cert path", async () => {
102-
mockReadFile.mockResolvedValueOnce(`
102+
it("should set the cert path", async () => {
103+
mockReadFile.mockResolvedValueOnce(`
103104
docker.host=tcp://my.docker.host:1234
104105
docker.tls.verify=1
105106
docker.cert.path=/some/path
106107
`);
107108

108-
const dockerClientConfig = await getContainerRuntimeConfig({});
109+
const dockerClientConfig = await getContainerRuntimeConfig({});
109110

110-
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
111-
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
112-
expect(dockerClientConfig.dockerCertPath).toBe("/some/path");
111+
expect(dockerClientConfig.dockerHost).toBe("tcp://my.docker.host:1234");
112+
expect(dockerClientConfig.dockerTlsVerify).toBe("1");
113+
expect(dockerClientConfig.dockerCertPath).toBe("/some/path");
114+
});
113115
});
114-
});
115116

116-
test("should cache the result", async () => {
117-
mockExistsSync.mockReturnValue(true);
118-
mockReadFile.mockResolvedValueOnce("tc.host=tcp://my.docker.host:1234");
117+
it("should cache the result", async () => {
118+
mockExistsSync.mockReturnValue(true);
119+
mockReadFile.mockResolvedValueOnce("tc.host=tcp://my.docker.host:1234");
119120

120-
await getContainerRuntimeConfig({});
121-
const dockerClientConfig = await getContainerRuntimeConfig({});
121+
await getContainerRuntimeConfig({});
122+
const dockerClientConfig = await getContainerRuntimeConfig({});
122123

123-
expect(dockerClientConfig.tcHost).toBe("tcp://my.docker.host:1234");
124-
expect(mockExistsSync).toHaveBeenCalledTimes(1);
125-
expect(mockReadFile).toHaveBeenCalledTimes(1);
124+
expect(dockerClientConfig.tcHost).toBe("tcp://my.docker.host:1234");
125+
expect(mockExistsSync).toHaveBeenCalledTimes(1);
126+
expect(mockReadFile).toHaveBeenCalledTimes(1);
127+
});
126128
});

packages/testcontainers/src/container-runtime/utils/image-exists.test.ts

Lines changed: 33 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,46 +12,48 @@ vi.mock("dockerode", () => {
1212
};
1313
});
1414

15-
afterEach(() => {
16-
vi.resetModules();
17-
});
15+
describe.sequential("imageExists", () => {
16+
afterEach(() => {
17+
vi.resetModules();
18+
});
1819

19-
test("returns true when image exists", async () => {
20-
const { imageExists } = await import("./image-exists");
21-
mockImageInspect.mockResolvedValue({});
20+
it("returns true when image exists", async () => {
21+
const { imageExists } = await import("./image-exists");
22+
mockImageInspect.mockResolvedValue({});
2223

23-
const imageName = ImageName.fromString("imageName");
24-
const result = await imageExists(new Dockerode(), imageName);
24+
const imageName = ImageName.fromString("imageName");
25+
const result = await imageExists(new Dockerode(), imageName);
2526

26-
expect(result).toBe(true);
27-
});
27+
expect(result).toBe(true);
28+
});
2829

29-
test("returns previous result from cache", async () => {
30-
const { imageExists } = await import("./image-exists");
31-
mockImageInspect.mockResolvedValue({});
30+
it("returns previous result from cache", async () => {
31+
const { imageExists } = await import("./image-exists");
32+
mockImageInspect.mockResolvedValue({});
3233

33-
const imageName = ImageName.fromString("imageName");
34-
await imageExists(new Dockerode(), imageName);
35-
const result = await imageExists(new Dockerode(), imageName);
34+
const imageName = ImageName.fromString("imageName");
35+
await imageExists(new Dockerode(), imageName);
36+
const result = await imageExists(new Dockerode(), imageName);
3637

37-
expect(result).toBe(true);
38-
expect(mockImageInspect).toHaveBeenCalledTimes(1);
39-
});
38+
expect(result).toBe(true);
39+
expect(mockImageInspect).toHaveBeenCalledTimes(1);
40+
});
4041

41-
test("returns false when image inspect fails because image does not exist", async () => {
42-
const { imageExists } = await import("./image-exists");
43-
mockImageInspect.mockRejectedValue(new Error("no such image"));
42+
it("returns false when image inspect fails because image does not exist", async () => {
43+
const { imageExists } = await import("./image-exists");
44+
mockImageInspect.mockRejectedValue(new Error("no such image"));
4445

45-
const imageName = ImageName.fromString("imageName");
46-
const result = await imageExists(new Dockerode(), imageName);
46+
const imageName = ImageName.fromString("imageName");
47+
const result = await imageExists(new Dockerode(), imageName);
4748

48-
expect(result).toBe(false);
49-
});
49+
expect(result).toBe(false);
50+
});
5051

51-
test("throws when unable to inspect image", async () => {
52-
const { imageExists } = await import("./image-exists");
53-
mockImageInspect.mockRejectedValue(new Error("unknown error"));
52+
it("throws when unable to inspect image", async () => {
53+
const { imageExists } = await import("./image-exists");
54+
mockImageInspect.mockRejectedValue(new Error("unknown error"));
5455

55-
const imageName = ImageName.fromString("imageName");
56-
await expect(() => imageExists(new Dockerode(), imageName)).rejects.toThrowError("unknown error");
56+
const imageName = ImageName.fromString("imageName");
57+
await expect(() => imageExists(new Dockerode(), imageName)).rejects.toThrowError("unknown error");
58+
});
5759
});

packages/testcontainers/src/container-runtime/utils/lookup-host-ips.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ vi.mock("dns/promises", () => {
88
};
99
});
1010

11-
describe("lookupHostIps", () => {
11+
describe.sequential("lookupHostIps", () => {
1212
it("should return a list of resolved host IPs when host is not an IP", async () => {
1313
const hostIps: HostIp[] = [{ address: "127.0.0.1", family: 4 }];
1414
mockDnsLookup.mockResolvedValueOnce(hostIps);

0 commit comments

Comments
 (0)