@testcontainers/gcloud
Version:
GCloud module for Testcontainers
34 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractGcloudEmulator = void 0;
const testcontainers_1 = require("testcontainers");
const emulator_flags_manager_1 = require("./emulator-flags-manager");
class AbstractGcloudEmulator extends testcontainers_1.GenericContainer {
cmd;
flagsManager;
constructor(image, port, cmd) {
super(image);
this.cmd = cmd;
this.flagsManager = new emulator_flags_manager_1.EmulatorFlagsManager();
this.withExposedPorts(port)
.withFlag("host-port", `0.0.0.0:${port}`)
.withWaitStrategy(testcontainers_1.Wait.forLogMessage(/.*running.*/))
.withStartupTimeout(120_000);
}
/**
* Adds flag as argument to emulator start command.
* Adding same flag name twice replaces existing flag value.
* @param name flag name. Must be set to non-empty string. May optionally contain -- prefix.
* @param value flag value. May be empty string.
* @returns this instance for chaining.
*/
withFlag(name, value) {
this.flagsManager.withFlag(name, value);
return this;
}
async beforeContainerCreated() {
this.withCommand(["/bin/sh", "-c", `${this.cmd} ${this.flagsManager.expandFlags()}`]);
}
}
exports.AbstractGcloudEmulator = AbstractGcloudEmulator;
//# sourceMappingURL=abstract-gcloud-emulator.js.map