testcontainers 9.2.0 → 9.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/dist/package.json +1 -1
- package/dist/src/bound-ports.d.ts +12 -0
- package/dist/src/bound-ports.js +50 -0
- package/dist/src/clock.d.ts +7 -0
- package/dist/src/clock.js +9 -0
- package/dist/src/docker/docker-client-config.d.ts +10 -0
- package/dist/src/docker/docker-client-config.js +66 -0
- package/dist/src/docker/docker-client.d.ts +24 -0
- package/dist/src/docker/docker-client.js +198 -0
- package/dist/src/docker/functions/container/attach-container.d.ts +3 -0
- package/dist/src/docker/functions/container/attach-container.js +25 -0
- package/dist/src/docker/functions/container/container-logs.d.ts +6 -0
- package/dist/src/docker/functions/container/container-logs.js +32 -0
- package/dist/src/docker/functions/container/create-container.d.ts +30 -0
- package/dist/src/docker/functions/container/create-container.js +114 -0
- package/dist/src/docker/functions/container/exec-container.d.ts +9 -0
- package/dist/src/docker/functions/container/exec-container.js +59 -0
- package/dist/src/docker/functions/container/get-container.d.ts +3 -0
- package/dist/src/docker/functions/container/get-container.js +49 -0
- package/dist/src/docker/functions/container/inspect-container.d.ts +19 -0
- package/dist/src/docker/functions/container/inspect-container.js +67 -0
- package/dist/src/docker/functions/container/list-containers.d.ts +2 -0
- package/dist/src/docker/functions/container/list-containers.js +25 -0
- package/dist/src/docker/functions/container/put-container-archive.d.ts +9 -0
- package/dist/src/docker/functions/container/put-container-archive.js +23 -0
- package/dist/src/docker/functions/container/remove-container.d.ts +5 -0
- package/dist/src/docker/functions/container/remove-container.js +23 -0
- package/dist/src/docker/functions/container/restart-container.d.ts +5 -0
- package/dist/src/docker/functions/container/restart-container.js +23 -0
- package/dist/src/docker/functions/container/start-container.d.ts +2 -0
- package/dist/src/docker/functions/container/start-container.js +23 -0
- package/dist/src/docker/functions/container/stop-container.d.ts +5 -0
- package/dist/src/docker/functions/container/stop-container.js +29 -0
- package/dist/src/docker/functions/create-labels.d.ts +3 -0
- package/dist/src/docker/functions/create-labels.js +17 -0
- package/dist/src/docker/functions/demux-stream.d.ts +3 -0
- package/dist/src/docker/functions/demux-stream.js +32 -0
- package/dist/src/docker/functions/get-info.d.ts +11 -0
- package/dist/src/docker/functions/get-info.js +38 -0
- package/dist/src/docker/functions/image/build-image.d.ts +13 -0
- package/dist/src/docker/functions/image/build-image.js +76 -0
- package/dist/src/docker/functions/image/image-exists.d.ts +3 -0
- package/dist/src/docker/functions/image/image-exists.js +34 -0
- package/dist/src/docker/functions/image/list-images.d.ts +3 -0
- package/dist/src/docker/functions/image/list-images.js +34 -0
- package/dist/src/docker/functions/image/pull-image.d.ts +7 -0
- package/dist/src/docker/functions/image/pull-image.js +41 -0
- package/dist/src/docker/functions/network/connect-network.d.ts +6 -0
- package/dist/src/docker/functions/network/connect-network.js +27 -0
- package/dist/src/docker/functions/network/create-network.d.ts +16 -0
- package/dist/src/docker/functions/network/create-network.js +38 -0
- package/dist/src/docker/functions/network/remove-network.d.ts +1 -0
- package/dist/src/docker/functions/network/remove-network.js +30 -0
- package/dist/src/docker/functions/run-in-container.d.ts +2 -0
- package/dist/src/docker/functions/run-in-container.js +39 -0
- package/dist/src/docker/get-remote-docker-unix-socket-path.d.ts +5 -0
- package/dist/src/docker/get-remote-docker-unix-socket-path.js +17 -0
- package/dist/src/docker/lookup-host-ips.d.ts +5 -0
- package/dist/src/docker/lookup-host-ips.js +26 -0
- package/dist/src/docker/pull-stream-parser.d.ts +11 -0
- package/dist/src/docker/pull-stream-parser.js +63 -0
- package/dist/src/docker/rootless-unix-socket-strategy.d.ts +16 -0
- package/dist/src/docker/rootless-unix-socket-strategy.js +69 -0
- package/dist/src/docker/session-id.d.ts +1 -0
- package/dist/src/docker/session-id.js +5 -0
- package/dist/src/docker/types.d.ts +79 -0
- package/dist/src/docker/types.js +2 -0
- package/dist/src/docker-compose/default-docker-compose-options.d.ts +3 -0
- package/dist/src/docker-compose/default-docker-compose-options.js +37 -0
- package/dist/src/docker-compose/docker-compose-options.d.ts +9 -0
- package/dist/src/docker-compose/docker-compose-options.js +2 -0
- package/dist/src/docker-compose/functions/container-name-resolver.d.ts +1 -0
- package/dist/src/docker-compose/functions/container-name-resolver.js +15 -0
- package/dist/src/docker-compose/functions/docker-compose-down.d.ts +3 -0
- package/dist/src/docker-compose/functions/docker-compose-down.js +39 -0
- package/dist/src/docker-compose/functions/docker-compose-stop.d.ts +2 -0
- package/dist/src/docker-compose/functions/docker-compose-stop.js +29 -0
- package/dist/src/docker-compose/functions/docker-compose-up.d.ts +2 -0
- package/dist/src/docker-compose/functions/docker-compose-up.js +41 -0
- package/dist/src/docker-compose-environment/docker-compose-environment.d.ts +25 -0
- package/dist/src/docker-compose-environment/docker-compose-environment.js +134 -0
- package/dist/src/docker-compose-environment/downed-docker-compose-environment.d.ts +2 -0
- package/dist/src/docker-compose-environment/downed-docker-compose-environment.js +6 -0
- package/dist/src/docker-compose-environment/started-docker-compose-environment.d.ts +15 -0
- package/dist/src/docker-compose-environment/started-docker-compose-environment.js +46 -0
- package/dist/src/docker-compose-environment/stopped-docker-compose-environment.d.ts +8 -0
- package/dist/src/docker-compose-environment/stopped-docker-compose-environment.js +27 -0
- package/dist/src/docker-image-name.d.ts +15 -0
- package/dist/src/docker-image-name.js +63 -0
- package/dist/src/dockerfile-parser.d.ts +3 -0
- package/dist/src/dockerfile-parser.js +39 -0
- package/dist/src/generic-container/generic-container-builder.d.ts +18 -0
- package/dist/src/generic-container/generic-container-builder.js +98 -0
- package/dist/src/generic-container/generic-container.d.ts +77 -0
- package/dist/src/generic-container/generic-container.js +312 -0
- package/dist/src/generic-container/started-generic-container.d.ts +31 -0
- package/dist/src/generic-container/started-generic-container.js +97 -0
- package/dist/src/generic-container/stopped-generic-container.d.ts +3 -0
- package/dist/src/generic-container/stopped-generic-container.js +6 -0
- package/dist/src/hash.d.ts +1 -0
- package/dist/src/hash.js +11 -0
- package/dist/src/http-wait-strategy.d.ts +27 -0
- package/dist/src/http-wait-strategy.js +113 -0
- package/dist/src/images.d.ts +2 -0
- package/dist/src/images.js +6 -0
- package/dist/src/index.d.ts +21 -0
- package/dist/src/index.js +54 -0
- package/dist/src/labels.d.ts +5 -0
- package/dist/src/labels.js +8 -0
- package/dist/src/logger.d.ts +36 -0
- package/dist/src/logger.js +61 -0
- package/dist/src/modules/abstract-started-container.d.ts +21 -0
- package/dist/src/modules/abstract-started-container.js +59 -0
- package/dist/src/modules/arangodb/arangodb-container.d.ts +19 -0
- package/dist/src/modules/arangodb/arangodb-container.js +60 -0
- package/dist/src/modules/elasticsearch/elasticsearch-container.d.ts +12 -0
- package/dist/src/modules/elasticsearch/elasticsearch-container.js +43 -0
- package/dist/src/modules/kafka/kafka-container.d.ts +46 -0
- package/dist/src/modules/kafka/kafka-container.js +172 -0
- package/dist/src/modules/mongodb/mongodb-container.d.ts +19 -0
- package/dist/src/modules/mongodb/mongodb-container.js +85 -0
- package/dist/src/modules/mysql/mysql-container.d.ts +29 -0
- package/dist/src/modules/mysql/mysql-container.js +102 -0
- package/dist/src/modules/nats/nats-container.d.ts +55 -0
- package/dist/src/modules/nats/nats-container.js +97 -0
- package/dist/src/modules/neo4j/neo4j-container.d.ts +23 -0
- package/dist/src/modules/neo4j/neo4j-container.js +82 -0
- package/dist/src/modules/postgresql/postgresql-container.d.ts +28 -0
- package/dist/src/modules/postgresql/postgresql-container.js +87 -0
- package/dist/src/network.d.ts +17 -0
- package/dist/src/network.js +54 -0
- package/dist/src/port-check.d.ts +17 -0
- package/dist/src/port-check.js +84 -0
- package/dist/src/port-forwarder.d.ts +17 -0
- package/dist/src/port-forwarder.js +81 -0
- package/dist/src/port-generator.d.ts +15 -0
- package/dist/src/port-generator.js +51 -0
- package/dist/src/port.d.ts +10 -0
- package/dist/src/port.js +47 -0
- package/dist/src/pull-policy.d.ts +9 -0
- package/dist/src/pull-policy.js +15 -0
- package/dist/src/reaper.d.ts +14 -0
- package/dist/src/reaper.js +141 -0
- package/dist/src/registry-auth-locator/auths.d.ts +8 -0
- package/dist/src/registry-auth-locator/auths.js +56 -0
- package/dist/src/registry-auth-locator/cred-helpers.d.ts +6 -0
- package/dist/src/registry-auth-locator/cred-helpers.js +15 -0
- package/dist/src/registry-auth-locator/credential-provider.d.ts +10 -0
- package/dist/src/registry-auth-locator/credential-provider.js +83 -0
- package/dist/src/registry-auth-locator/creds-store.d.ts +6 -0
- package/dist/src/registry-auth-locator/creds-store.js +15 -0
- package/dist/src/registry-auth-locator/get-auth-config.d.ts +2 -0
- package/dist/src/registry-auth-locator/get-auth-config.js +65 -0
- package/dist/src/registry-auth-locator/registry-auth-locator.d.ts +6 -0
- package/dist/src/registry-auth-locator/registry-auth-locator.js +2 -0
- package/dist/src/registry-auth-locator/registry-matches.d.ts +1 -0
- package/dist/src/registry-auth-locator/registry-matches.js +5 -0
- package/dist/src/registry-auth-locator/types.d.ts +23 -0
- package/dist/src/registry-auth-locator/types.js +2 -0
- package/dist/src/retry-strategy.d.ts +17 -0
- package/dist/src/retry-strategy.js +46 -0
- package/dist/src/startup-check-strategy.d.ts +7 -0
- package/dist/src/startup-check-strategy.js +30 -0
- package/dist/src/stream-utils.d.ts +6 -0
- package/dist/src/stream-utils.js +46 -0
- package/dist/src/system-info.d.ts +17 -0
- package/dist/src/system-info.js +51 -0
- package/dist/src/test-container.d.ts +66 -0
- package/dist/src/test-container.js +2 -0
- package/dist/src/test-containers.d.ts +3 -0
- package/dist/src/test-containers.js +22 -0
- package/dist/src/type-guards.d.ts +1 -0
- package/dist/src/type-guards.js +7 -0
- package/dist/src/uuid.d.ts +6 -0
- package/dist/src/uuid.js +13 -0
- package/dist/src/wait-for-container.d.ts +4 -0
- package/dist/src/wait-for-container.js +34 -0
- package/dist/src/wait-strategy.d.ts +32 -0
- package/dist/src/wait-strategy.js +137 -0
- package/dist/src/wait.d.ts +7 -0
- package/dist/src/wait.js +17 -0
- package/package.json +1 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.HttpWaitStrategy = void 0;
|
|
16
|
+
const wait_strategy_1 = require("./wait-strategy");
|
|
17
|
+
const retry_strategy_1 = require("./retry-strategy");
|
|
18
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
19
|
+
const https_1 = __importDefault(require("https"));
|
|
20
|
+
class HttpWaitStrategy extends wait_strategy_1.AbstractWaitStrategy {
|
|
21
|
+
constructor(path, port) {
|
|
22
|
+
super();
|
|
23
|
+
this.protocol = "http";
|
|
24
|
+
this.method = "GET";
|
|
25
|
+
this.headers = {};
|
|
26
|
+
this.predicates = [];
|
|
27
|
+
this._allowInsecure = false;
|
|
28
|
+
this.readTimeout = 1000;
|
|
29
|
+
this.path = path;
|
|
30
|
+
this.port = port;
|
|
31
|
+
}
|
|
32
|
+
forStatusCode(statusCode) {
|
|
33
|
+
this.predicates.push((response) => __awaiter(this, void 0, void 0, function* () { return response.status === statusCode; }));
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
forStatusCodeMatching(predicate) {
|
|
37
|
+
this.predicates.push((response) => __awaiter(this, void 0, void 0, function* () { return predicate(response.status); }));
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
forResponsePredicate(predicate) {
|
|
41
|
+
this.predicates.push((response) => __awaiter(this, void 0, void 0, function* () { return predicate(yield response.text()); }));
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
withMethod(method) {
|
|
45
|
+
this.method = method;
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
withHeaders(headers) {
|
|
49
|
+
this.headers = Object.assign(Object.assign({}, this.headers), headers);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
withBasicCredentials(username, password) {
|
|
53
|
+
const base64Encoded = Buffer.from(`${username}:${password}`).toString("base64");
|
|
54
|
+
this.headers = Object.assign(Object.assign({}, this.headers), { Authorization: `Basic ${base64Encoded}` });
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
withReadTimeout(readTimeout) {
|
|
58
|
+
this.readTimeout = readTimeout;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
usingTls() {
|
|
62
|
+
this.protocol = "https";
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
allowInsecure() {
|
|
66
|
+
this._allowInsecure = true;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
waitUntilReady(container, host, boundPorts) {
|
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
yield new retry_strategy_1.IntervalRetryStrategy(this.readTimeout).retryUntil(() => __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
try {
|
|
73
|
+
const url = `${this.protocol}://${host}:${boundPorts.getBinding(this.port)}${this.path}`;
|
|
74
|
+
return yield (0, node_fetch_1.default)(url, {
|
|
75
|
+
method: this.method,
|
|
76
|
+
timeout: this.readTimeout,
|
|
77
|
+
headers: this.headers,
|
|
78
|
+
agent: this.getAgent(),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
catch (_a) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}), (response) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
if (response === undefined) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
else if (!this.predicates.length) {
|
|
89
|
+
return response.ok;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
for (const predicate of this.predicates) {
|
|
93
|
+
const result = yield predicate(response);
|
|
94
|
+
if (!result) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}), () => {
|
|
101
|
+
throw new Error(`URL ${this.path} not accessible after ${this.startupTimeout}ms for ${container.id}`);
|
|
102
|
+
}, this.startupTimeout);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
getAgent() {
|
|
106
|
+
if (this._allowInsecure) {
|
|
107
|
+
return new https_1.default.Agent({
|
|
108
|
+
rejectUnauthorized: false,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.HttpWaitStrategy = HttpWaitStrategy;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SSHD_IMAGE = exports.REAPER_IMAGE = void 0;
|
|
5
|
+
exports.REAPER_IMAGE = (_a = process.env["RYUK_CONTAINER_IMAGE"]) !== null && _a !== void 0 ? _a : "testcontainers/ryuk:0.3.4";
|
|
6
|
+
exports.SSHD_IMAGE = (_b = process.env["SSHD_CONTAINER_IMAGE"]) !== null && _b !== void 0 ? _b : "testcontainers/sshd:1.1.0";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { TestContainer, StartedTestContainer, StoppedTestContainer } from "./test-container";
|
|
2
|
+
export { GenericContainer } from "./generic-container/generic-container";
|
|
3
|
+
export { GenericContainerBuilder } from "./generic-container/generic-container-builder";
|
|
4
|
+
export { TestContainers } from "./test-containers";
|
|
5
|
+
export { DockerComposeEnvironment } from "./docker-compose-environment/docker-compose-environment";
|
|
6
|
+
export { StartedDockerComposeEnvironment } from "./docker-compose-environment/started-docker-compose-environment";
|
|
7
|
+
export { StoppedDockerComposeEnvironment } from "./docker-compose-environment/stopped-docker-compose-environment";
|
|
8
|
+
export { DownedDockerComposeEnvironment } from "./docker-compose-environment/downed-docker-compose-environment";
|
|
9
|
+
export { Network, StartedNetwork, StoppedNetwork } from "./network";
|
|
10
|
+
export { Wait } from "./wait";
|
|
11
|
+
export { StartupCheckStrategy, StartupStatus } from "./startup-check-strategy";
|
|
12
|
+
export { PullPolicy, DefaultPullPolicy, AlwaysPullPolicy } from "./pull-policy";
|
|
13
|
+
export { AbstractStartedContainer } from "./modules/abstract-started-container";
|
|
14
|
+
export { PostgreSqlContainer, StartedPostgreSqlContainer } from "./modules/postgresql/postgresql-container";
|
|
15
|
+
export { KafkaContainer, StartedKafkaContainer } from "./modules/kafka/kafka-container";
|
|
16
|
+
export { Neo4jContainer, StartedNeo4jContainer } from "./modules/neo4j/neo4j-container";
|
|
17
|
+
export { ArangoDBContainer, StartedArangoContainer } from "./modules/arangodb/arangodb-container";
|
|
18
|
+
export { ElasticsearchContainer, StartedElasticsearchContainer } from "./modules/elasticsearch/elasticsearch-container";
|
|
19
|
+
export { MySqlContainer, StartedMySqlContainer } from "./modules/mysql/mysql-container";
|
|
20
|
+
export { NatsContainer, StartedNatsContainer, NatsConnectionOptions, NatsTlsOptions, } from "./modules/nats/nats-container";
|
|
21
|
+
export { MongoDBContainer, StartedMongoDBContainer } from "./modules/mongodb/mongodb-container";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StartedMongoDBContainer = exports.MongoDBContainer = exports.StartedNatsContainer = exports.NatsContainer = exports.StartedMySqlContainer = exports.MySqlContainer = exports.StartedElasticsearchContainer = exports.ElasticsearchContainer = exports.StartedArangoContainer = exports.ArangoDBContainer = exports.StartedNeo4jContainer = exports.Neo4jContainer = exports.StartedKafkaContainer = exports.KafkaContainer = exports.StartedPostgreSqlContainer = exports.PostgreSqlContainer = exports.AbstractStartedContainer = exports.AlwaysPullPolicy = exports.DefaultPullPolicy = exports.StartupCheckStrategy = exports.Wait = exports.StoppedNetwork = exports.StartedNetwork = exports.Network = exports.DownedDockerComposeEnvironment = exports.StoppedDockerComposeEnvironment = exports.StartedDockerComposeEnvironment = exports.DockerComposeEnvironment = exports.TestContainers = exports.GenericContainerBuilder = exports.GenericContainer = void 0;
|
|
4
|
+
var generic_container_1 = require("./generic-container/generic-container");
|
|
5
|
+
Object.defineProperty(exports, "GenericContainer", { enumerable: true, get: function () { return generic_container_1.GenericContainer; } });
|
|
6
|
+
var generic_container_builder_1 = require("./generic-container/generic-container-builder");
|
|
7
|
+
Object.defineProperty(exports, "GenericContainerBuilder", { enumerable: true, get: function () { return generic_container_builder_1.GenericContainerBuilder; } });
|
|
8
|
+
var test_containers_1 = require("./test-containers");
|
|
9
|
+
Object.defineProperty(exports, "TestContainers", { enumerable: true, get: function () { return test_containers_1.TestContainers; } });
|
|
10
|
+
var docker_compose_environment_1 = require("./docker-compose-environment/docker-compose-environment");
|
|
11
|
+
Object.defineProperty(exports, "DockerComposeEnvironment", { enumerable: true, get: function () { return docker_compose_environment_1.DockerComposeEnvironment; } });
|
|
12
|
+
var started_docker_compose_environment_1 = require("./docker-compose-environment/started-docker-compose-environment");
|
|
13
|
+
Object.defineProperty(exports, "StartedDockerComposeEnvironment", { enumerable: true, get: function () { return started_docker_compose_environment_1.StartedDockerComposeEnvironment; } });
|
|
14
|
+
var stopped_docker_compose_environment_1 = require("./docker-compose-environment/stopped-docker-compose-environment");
|
|
15
|
+
Object.defineProperty(exports, "StoppedDockerComposeEnvironment", { enumerable: true, get: function () { return stopped_docker_compose_environment_1.StoppedDockerComposeEnvironment; } });
|
|
16
|
+
var downed_docker_compose_environment_1 = require("./docker-compose-environment/downed-docker-compose-environment");
|
|
17
|
+
Object.defineProperty(exports, "DownedDockerComposeEnvironment", { enumerable: true, get: function () { return downed_docker_compose_environment_1.DownedDockerComposeEnvironment; } });
|
|
18
|
+
var network_1 = require("./network");
|
|
19
|
+
Object.defineProperty(exports, "Network", { enumerable: true, get: function () { return network_1.Network; } });
|
|
20
|
+
Object.defineProperty(exports, "StartedNetwork", { enumerable: true, get: function () { return network_1.StartedNetwork; } });
|
|
21
|
+
Object.defineProperty(exports, "StoppedNetwork", { enumerable: true, get: function () { return network_1.StoppedNetwork; } });
|
|
22
|
+
var wait_1 = require("./wait");
|
|
23
|
+
Object.defineProperty(exports, "Wait", { enumerable: true, get: function () { return wait_1.Wait; } });
|
|
24
|
+
var startup_check_strategy_1 = require("./startup-check-strategy");
|
|
25
|
+
Object.defineProperty(exports, "StartupCheckStrategy", { enumerable: true, get: function () { return startup_check_strategy_1.StartupCheckStrategy; } });
|
|
26
|
+
var pull_policy_1 = require("./pull-policy");
|
|
27
|
+
Object.defineProperty(exports, "DefaultPullPolicy", { enumerable: true, get: function () { return pull_policy_1.DefaultPullPolicy; } });
|
|
28
|
+
Object.defineProperty(exports, "AlwaysPullPolicy", { enumerable: true, get: function () { return pull_policy_1.AlwaysPullPolicy; } });
|
|
29
|
+
var abstract_started_container_1 = require("./modules/abstract-started-container");
|
|
30
|
+
Object.defineProperty(exports, "AbstractStartedContainer", { enumerable: true, get: function () { return abstract_started_container_1.AbstractStartedContainer; } });
|
|
31
|
+
var postgresql_container_1 = require("./modules/postgresql/postgresql-container");
|
|
32
|
+
Object.defineProperty(exports, "PostgreSqlContainer", { enumerable: true, get: function () { return postgresql_container_1.PostgreSqlContainer; } });
|
|
33
|
+
Object.defineProperty(exports, "StartedPostgreSqlContainer", { enumerable: true, get: function () { return postgresql_container_1.StartedPostgreSqlContainer; } });
|
|
34
|
+
var kafka_container_1 = require("./modules/kafka/kafka-container");
|
|
35
|
+
Object.defineProperty(exports, "KafkaContainer", { enumerable: true, get: function () { return kafka_container_1.KafkaContainer; } });
|
|
36
|
+
Object.defineProperty(exports, "StartedKafkaContainer", { enumerable: true, get: function () { return kafka_container_1.StartedKafkaContainer; } });
|
|
37
|
+
var neo4j_container_1 = require("./modules/neo4j/neo4j-container");
|
|
38
|
+
Object.defineProperty(exports, "Neo4jContainer", { enumerable: true, get: function () { return neo4j_container_1.Neo4jContainer; } });
|
|
39
|
+
Object.defineProperty(exports, "StartedNeo4jContainer", { enumerable: true, get: function () { return neo4j_container_1.StartedNeo4jContainer; } });
|
|
40
|
+
var arangodb_container_1 = require("./modules/arangodb/arangodb-container");
|
|
41
|
+
Object.defineProperty(exports, "ArangoDBContainer", { enumerable: true, get: function () { return arangodb_container_1.ArangoDBContainer; } });
|
|
42
|
+
Object.defineProperty(exports, "StartedArangoContainer", { enumerable: true, get: function () { return arangodb_container_1.StartedArangoContainer; } });
|
|
43
|
+
var elasticsearch_container_1 = require("./modules/elasticsearch/elasticsearch-container");
|
|
44
|
+
Object.defineProperty(exports, "ElasticsearchContainer", { enumerable: true, get: function () { return elasticsearch_container_1.ElasticsearchContainer; } });
|
|
45
|
+
Object.defineProperty(exports, "StartedElasticsearchContainer", { enumerable: true, get: function () { return elasticsearch_container_1.StartedElasticsearchContainer; } });
|
|
46
|
+
var mysql_container_1 = require("./modules/mysql/mysql-container");
|
|
47
|
+
Object.defineProperty(exports, "MySqlContainer", { enumerable: true, get: function () { return mysql_container_1.MySqlContainer; } });
|
|
48
|
+
Object.defineProperty(exports, "StartedMySqlContainer", { enumerable: true, get: function () { return mysql_container_1.StartedMySqlContainer; } });
|
|
49
|
+
var nats_container_1 = require("./modules/nats/nats-container");
|
|
50
|
+
Object.defineProperty(exports, "NatsContainer", { enumerable: true, get: function () { return nats_container_1.NatsContainer; } });
|
|
51
|
+
Object.defineProperty(exports, "StartedNatsContainer", { enumerable: true, get: function () { return nats_container_1.StartedNatsContainer; } });
|
|
52
|
+
var mongodb_container_1 = require("./modules/mongodb/mongodb-container");
|
|
53
|
+
Object.defineProperty(exports, "MongoDBContainer", { enumerable: true, get: function () { return mongodb_container_1.MongoDBContainer; } });
|
|
54
|
+
Object.defineProperty(exports, "StartedMongoDBContainer", { enumerable: true, get: function () { return mongodb_container_1.StartedMongoDBContainer; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const LABEL_TESTCONTAINERS = "org.testcontainers";
|
|
2
|
+
export declare const LABEL_TESTCONTAINERS_LANG = "org.testcontainers.lang";
|
|
3
|
+
export declare const LABEL_TESTCONTAINERS_VERSION = "org.testcontainers.version";
|
|
4
|
+
export declare const LABEL_TESTCONTAINERS_SESSION_ID = "org.testcontainers.session-id";
|
|
5
|
+
export declare const LABEL_TESTCONTAINERS_CONTAINER_HASH = "org.testcontainers.container-hash";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LABEL_TESTCONTAINERS_CONTAINER_HASH = exports.LABEL_TESTCONTAINERS_SESSION_ID = exports.LABEL_TESTCONTAINERS_VERSION = exports.LABEL_TESTCONTAINERS_LANG = exports.LABEL_TESTCONTAINERS = void 0;
|
|
4
|
+
exports.LABEL_TESTCONTAINERS = "org.testcontainers";
|
|
5
|
+
exports.LABEL_TESTCONTAINERS_LANG = "org.testcontainers.lang";
|
|
6
|
+
exports.LABEL_TESTCONTAINERS_VERSION = "org.testcontainers.version";
|
|
7
|
+
exports.LABEL_TESTCONTAINERS_SESSION_ID = "org.testcontainers.session-id";
|
|
8
|
+
exports.LABEL_TESTCONTAINERS_CONTAINER_HASH = "org.testcontainers.container-hash";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
type Message = string;
|
|
2
|
+
export interface Logger {
|
|
3
|
+
enabled(): boolean;
|
|
4
|
+
trace(message: Message): void;
|
|
5
|
+
debug(message: Message): void;
|
|
6
|
+
info(message: Message): void;
|
|
7
|
+
warn(message: Message): void;
|
|
8
|
+
error(message: Message): void;
|
|
9
|
+
}
|
|
10
|
+
declare class DebugLogger implements Logger {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
constructor(namespace: string);
|
|
13
|
+
enabled(): boolean;
|
|
14
|
+
trace(message: Message): void;
|
|
15
|
+
debug(message: Message): void;
|
|
16
|
+
info(message: Message): void;
|
|
17
|
+
warn(message: Message): void;
|
|
18
|
+
error(message: Message): void;
|
|
19
|
+
}
|
|
20
|
+
export declare class FakeLogger implements Logger {
|
|
21
|
+
readonly traceLogs: Message[];
|
|
22
|
+
readonly debugLogs: Message[];
|
|
23
|
+
readonly infoLogs: Message[];
|
|
24
|
+
readonly warnLogs: Message[];
|
|
25
|
+
readonly errorLogs: Message[];
|
|
26
|
+
enabled(): boolean;
|
|
27
|
+
trace(message: Message): void;
|
|
28
|
+
debug(message: Message): void;
|
|
29
|
+
info(message: Message): void;
|
|
30
|
+
warn(message: Message): void;
|
|
31
|
+
error(message: Message): void;
|
|
32
|
+
}
|
|
33
|
+
export declare const log: DebugLogger;
|
|
34
|
+
export declare const containerLog: DebugLogger;
|
|
35
|
+
export declare const execLog: DebugLogger;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.execLog = exports.containerLog = exports.log = exports.FakeLogger = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
class DebugLogger {
|
|
9
|
+
constructor(namespace) {
|
|
10
|
+
this.logger = (0, debug_1.default)(namespace);
|
|
11
|
+
}
|
|
12
|
+
enabled() {
|
|
13
|
+
return this.logger.enabled;
|
|
14
|
+
}
|
|
15
|
+
trace(message) {
|
|
16
|
+
this.logger(`TRACE ${message}`);
|
|
17
|
+
}
|
|
18
|
+
debug(message) {
|
|
19
|
+
this.logger(`DEBUG ${message}`);
|
|
20
|
+
}
|
|
21
|
+
info(message) {
|
|
22
|
+
this.logger(`INFO ${message}`);
|
|
23
|
+
}
|
|
24
|
+
warn(message) {
|
|
25
|
+
this.logger(`WARN ${message}`);
|
|
26
|
+
}
|
|
27
|
+
error(message) {
|
|
28
|
+
this.logger(`ERROR ${message}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
class FakeLogger {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.traceLogs = [];
|
|
34
|
+
this.debugLogs = [];
|
|
35
|
+
this.infoLogs = [];
|
|
36
|
+
this.warnLogs = [];
|
|
37
|
+
this.errorLogs = [];
|
|
38
|
+
}
|
|
39
|
+
enabled() {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
trace(message) {
|
|
43
|
+
this.traceLogs.push(message);
|
|
44
|
+
}
|
|
45
|
+
debug(message) {
|
|
46
|
+
this.debugLogs.push(message);
|
|
47
|
+
}
|
|
48
|
+
info(message) {
|
|
49
|
+
this.infoLogs.push(message);
|
|
50
|
+
}
|
|
51
|
+
warn(message) {
|
|
52
|
+
this.warnLogs.push(message);
|
|
53
|
+
}
|
|
54
|
+
error(message) {
|
|
55
|
+
this.errorLogs.push(message);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.FakeLogger = FakeLogger;
|
|
59
|
+
exports.log = new DebugLogger("testcontainers");
|
|
60
|
+
exports.containerLog = new DebugLogger("testcontainers:containers");
|
|
61
|
+
exports.execLog = new DebugLogger("testcontainers:exec");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { RestartOptions, StartedTestContainer, StopOptions, StoppedTestContainer } from "../test-container";
|
|
3
|
+
import { ExecResult, Labels } from "../docker/types";
|
|
4
|
+
import { Readable } from "stream";
|
|
5
|
+
export declare class AbstractStartedContainer implements StartedTestContainer {
|
|
6
|
+
protected readonly startedTestContainer: StartedTestContainer;
|
|
7
|
+
constructor(startedTestContainer: StartedTestContainer);
|
|
8
|
+
stop(options?: Partial<StopOptions>): Promise<StoppedTestContainer>;
|
|
9
|
+
restart(options?: Partial<RestartOptions>): Promise<void>;
|
|
10
|
+
getHost(): string;
|
|
11
|
+
getFirstMappedPort(): number;
|
|
12
|
+
getMappedPort(port: number): number;
|
|
13
|
+
getName(): string;
|
|
14
|
+
getLabels(): Labels;
|
|
15
|
+
getId(): string;
|
|
16
|
+
getNetworkNames(): string[];
|
|
17
|
+
getNetworkId(networkName: string): string;
|
|
18
|
+
getIpAddress(networkName: string): string;
|
|
19
|
+
exec(command: string[]): Promise<ExecResult>;
|
|
20
|
+
logs(): Promise<Readable>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AbstractStartedContainer = void 0;
|
|
13
|
+
class AbstractStartedContainer {
|
|
14
|
+
constructor(startedTestContainer) {
|
|
15
|
+
this.startedTestContainer = startedTestContainer;
|
|
16
|
+
}
|
|
17
|
+
stop(options) {
|
|
18
|
+
return this.startedTestContainer.stop(options);
|
|
19
|
+
}
|
|
20
|
+
restart(options) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
return this.startedTestContainer.restart(options);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
getHost() {
|
|
26
|
+
return this.startedTestContainer.getHost();
|
|
27
|
+
}
|
|
28
|
+
getFirstMappedPort() {
|
|
29
|
+
return this.startedTestContainer.getFirstMappedPort();
|
|
30
|
+
}
|
|
31
|
+
getMappedPort(port) {
|
|
32
|
+
return this.startedTestContainer.getMappedPort(port);
|
|
33
|
+
}
|
|
34
|
+
getName() {
|
|
35
|
+
return this.startedTestContainer.getName();
|
|
36
|
+
}
|
|
37
|
+
getLabels() {
|
|
38
|
+
return this.startedTestContainer.getLabels();
|
|
39
|
+
}
|
|
40
|
+
getId() {
|
|
41
|
+
return this.startedTestContainer.getId();
|
|
42
|
+
}
|
|
43
|
+
getNetworkNames() {
|
|
44
|
+
return this.startedTestContainer.getNetworkNames();
|
|
45
|
+
}
|
|
46
|
+
getNetworkId(networkName) {
|
|
47
|
+
return this.startedTestContainer.getNetworkId(networkName);
|
|
48
|
+
}
|
|
49
|
+
getIpAddress(networkName) {
|
|
50
|
+
return this.startedTestContainer.getIpAddress(networkName);
|
|
51
|
+
}
|
|
52
|
+
exec(command) {
|
|
53
|
+
return this.startedTestContainer.exec(command);
|
|
54
|
+
}
|
|
55
|
+
logs() {
|
|
56
|
+
return this.startedTestContainer.logs();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.AbstractStartedContainer = AbstractStartedContainer;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GenericContainer } from "../..";
|
|
2
|
+
import { StartedTestContainer } from "../../test-container";
|
|
3
|
+
import { AbstractStartedContainer } from "../abstract-started-container";
|
|
4
|
+
export declare class ArangoDBContainer extends GenericContainer {
|
|
5
|
+
private password;
|
|
6
|
+
constructor(image?: string, password?: string);
|
|
7
|
+
withPassword(password: string): this;
|
|
8
|
+
start(): Promise<StartedArangoContainer>;
|
|
9
|
+
}
|
|
10
|
+
export declare class StartedArangoContainer extends AbstractStartedContainer {
|
|
11
|
+
private readonly password;
|
|
12
|
+
private readonly host;
|
|
13
|
+
private readonly port;
|
|
14
|
+
constructor(startedTestContainer: StartedTestContainer, password: string);
|
|
15
|
+
getTcpUrl(): string;
|
|
16
|
+
getHttpUrl(): string;
|
|
17
|
+
getPassword(): string;
|
|
18
|
+
getUsername(): string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StartedArangoContainer = exports.ArangoDBContainer = void 0;
|
|
13
|
+
const __1 = require("../..");
|
|
14
|
+
const abstract_started_container_1 = require("../abstract-started-container");
|
|
15
|
+
const ARANGODB_PORT = 8529;
|
|
16
|
+
const USERNAME = "root";
|
|
17
|
+
class ArangoDBContainer extends __1.GenericContainer {
|
|
18
|
+
constructor(image = "arangodb:3.10.0", password = "test") {
|
|
19
|
+
super(image);
|
|
20
|
+
this.password = password;
|
|
21
|
+
}
|
|
22
|
+
withPassword(password) {
|
|
23
|
+
this.password = password;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
start() {
|
|
27
|
+
const _super = Object.create(null, {
|
|
28
|
+
start: { get: () => super.start }
|
|
29
|
+
});
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
this.withExposedPorts(...(this.hasExposedPorts ? this.ports : [ARANGODB_PORT]))
|
|
32
|
+
.withWaitStrategy(__1.Wait.forLogMessage("Have fun!"))
|
|
33
|
+
.withEnvironment({ ARANGO_ROOT_PASSWORD: this.password })
|
|
34
|
+
.withStartupTimeout(120000);
|
|
35
|
+
return new StartedArangoContainer(yield _super.start.call(this), this.password);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.ArangoDBContainer = ArangoDBContainer;
|
|
40
|
+
class StartedArangoContainer extends abstract_started_container_1.AbstractStartedContainer {
|
|
41
|
+
constructor(startedTestContainer, password) {
|
|
42
|
+
super(startedTestContainer);
|
|
43
|
+
this.password = password;
|
|
44
|
+
this.host = this.startedTestContainer.getHost();
|
|
45
|
+
this.port = this.startedTestContainer.getMappedPort(ARANGODB_PORT);
|
|
46
|
+
}
|
|
47
|
+
getTcpUrl() {
|
|
48
|
+
return `tcp://${this.host}:${this.port}/`;
|
|
49
|
+
}
|
|
50
|
+
getHttpUrl() {
|
|
51
|
+
return `http://${this.host}:${this.port}/`;
|
|
52
|
+
}
|
|
53
|
+
getPassword() {
|
|
54
|
+
return this.password;
|
|
55
|
+
}
|
|
56
|
+
getUsername() {
|
|
57
|
+
return USERNAME;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.StartedArangoContainer = StartedArangoContainer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericContainer, StartedTestContainer } from "../..";
|
|
2
|
+
import { AbstractStartedContainer } from "../abstract-started-container";
|
|
3
|
+
export declare class ElasticsearchContainer extends GenericContainer {
|
|
4
|
+
constructor(image?: string);
|
|
5
|
+
start(): Promise<StartedElasticsearchContainer>;
|
|
6
|
+
}
|
|
7
|
+
export declare class StartedElasticsearchContainer extends AbstractStartedContainer {
|
|
8
|
+
readonly startedTestContainer: StartedTestContainer;
|
|
9
|
+
private readonly httpPort;
|
|
10
|
+
constructor(startedTestContainer: StartedTestContainer);
|
|
11
|
+
getHttpUrl(): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.StartedElasticsearchContainer = exports.ElasticsearchContainer = void 0;
|
|
13
|
+
const __1 = require("../..");
|
|
14
|
+
const abstract_started_container_1 = require("../abstract-started-container");
|
|
15
|
+
const ELASTIC_SEARCH_HTTP_PORT = 9200;
|
|
16
|
+
class ElasticsearchContainer extends __1.GenericContainer {
|
|
17
|
+
constructor(image = "elasticsearch:7.17.7") {
|
|
18
|
+
super(image);
|
|
19
|
+
}
|
|
20
|
+
start() {
|
|
21
|
+
const _super = Object.create(null, {
|
|
22
|
+
start: { get: () => super.start }
|
|
23
|
+
});
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
this.withExposedPorts(...(this.hasExposedPorts ? this.ports : [ELASTIC_SEARCH_HTTP_PORT]))
|
|
26
|
+
.withEnvironment({ "discovery.type": "single-node" })
|
|
27
|
+
.withStartupTimeout(120000);
|
|
28
|
+
return new StartedElasticsearchContainer(yield _super.start.call(this));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ElasticsearchContainer = ElasticsearchContainer;
|
|
33
|
+
class StartedElasticsearchContainer extends abstract_started_container_1.AbstractStartedContainer {
|
|
34
|
+
constructor(startedTestContainer) {
|
|
35
|
+
super(startedTestContainer);
|
|
36
|
+
this.startedTestContainer = startedTestContainer;
|
|
37
|
+
this.httpPort = this.getMappedPort(ELASTIC_SEARCH_HTTP_PORT);
|
|
38
|
+
}
|
|
39
|
+
getHttpUrl() {
|
|
40
|
+
return `http://${this.getHost()}:${this.httpPort}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.StartedElasticsearchContainer = StartedElasticsearchContainer;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { GenericContainer } from "../../generic-container/generic-container";
|
|
2
|
+
import { BoundPorts } from "../../bound-ports";
|
|
3
|
+
import { StartedTestContainer } from "../..";
|
|
4
|
+
import { AbstractStartedContainer } from "../abstract-started-container";
|
|
5
|
+
import { InspectResult } from "../../docker/functions/container/inspect-container";
|
|
6
|
+
import { Content } from "../../docker/types";
|
|
7
|
+
export declare const KAFKA_IMAGE = "confluentinc/cp-kafka:7.2.2";
|
|
8
|
+
interface SaslSslListenerOptions {
|
|
9
|
+
sasl: SaslOptions;
|
|
10
|
+
port: number;
|
|
11
|
+
keystore: PKCS12CertificateStore;
|
|
12
|
+
truststore?: PKCS12CertificateStore;
|
|
13
|
+
}
|
|
14
|
+
interface SaslOptions {
|
|
15
|
+
mechanism: "SCRAM-SHA-256" | "SCRAM-SHA-512";
|
|
16
|
+
user: User;
|
|
17
|
+
}
|
|
18
|
+
interface User {
|
|
19
|
+
name: string;
|
|
20
|
+
password: string;
|
|
21
|
+
}
|
|
22
|
+
interface PKCS12CertificateStore {
|
|
23
|
+
content: Content;
|
|
24
|
+
passphrase: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class KafkaContainer extends GenericContainer {
|
|
27
|
+
private readonly uuid;
|
|
28
|
+
private isZooKeeperProvided;
|
|
29
|
+
private zooKeeperHost?;
|
|
30
|
+
private zooKeeperPort?;
|
|
31
|
+
private saslSslConfig?;
|
|
32
|
+
constructor(image?: string);
|
|
33
|
+
withZooKeeper(host: string, port: number): this;
|
|
34
|
+
withSaslSslListener(options: SaslSslListenerOptions): this;
|
|
35
|
+
protected preStart(): Promise<void>;
|
|
36
|
+
start(): Promise<StartedKafkaContainer>;
|
|
37
|
+
protected postStart(container: StartedTestContainer, inspectResult: InspectResult, boundPorts: BoundPorts): Promise<void>;
|
|
38
|
+
private addPlaintextAndSecureListener;
|
|
39
|
+
private addPlaintextListener;
|
|
40
|
+
private updateAdvertisedListeners;
|
|
41
|
+
private createUser;
|
|
42
|
+
}
|
|
43
|
+
export declare class StartedKafkaContainer extends AbstractStartedContainer {
|
|
44
|
+
constructor(startedTestContainer: StartedTestContainer);
|
|
45
|
+
}
|
|
46
|
+
export {};
|