@amqp-contract/testing 0.0.1

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.
@@ -0,0 +1,20 @@
1
+ import { TestProject } from "vitest/node";
2
+
3
+ //#region src/global-setup.d.ts
4
+ declare module "vitest" {
5
+ interface ProvidedContext {
6
+ __TESTCONTAINERS_RABBITMQ_IP__: string;
7
+ __TESTCONTAINERS_RABBITMQ_PORT_5672__: number;
8
+ __TESTCONTAINERS_RABBITMQ_PORT_15672__: number;
9
+ }
10
+ }
11
+ /**
12
+ * Setup function for Vitest globalSetup
13
+ * Starts a RabbitMQ container before all tests
14
+ */
15
+ declare function setup({
16
+ provide
17
+ }: TestProject): Promise<() => Promise<void>>;
18
+ //#endregion
19
+ export { setup as default };
20
+ //# sourceMappingURL=global-setup.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-setup.d.mts","names":[],"sources":["../src/global-setup.ts"],"sourcesContent":[],"mappings":";;;;;IAC+C,8BAAA,EAAA,MAAA;IAAA,qCAAA,EAAA,MAAA;IAAA,sCAAA,EAAA,MAAA;EAAA;;AAAA;;;;AAca,iBAA9B,KAAA,CAA8B;EAAA;AAAA,CAAA,EAAX,WAAW,CAAA,EAAA,OAAA,CAAA,GAAA,GAAA,OAAA,CAAA,IAAA,CAAA,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { GenericContainer, Wait } from "testcontainers";
2
+
3
+ //#region src/global-setup.ts
4
+ /**
5
+ * Setup function for Vitest globalSetup
6
+ * Starts a RabbitMQ container before all tests
7
+ */
8
+ async function setup({ provide }) {
9
+ console.log("๐Ÿณ Starting RabbitMQ test environment...");
10
+ const rabbitmqContainer = await new GenericContainer("rabbitmq:4.2.1-management-alpine").withExposedPorts(5672, 15672).withEnvironment({
11
+ RABBITMQ_DEFAULT_USER: "guest",
12
+ RABBITMQ_DEFAULT_PASS: "guest"
13
+ }).withHealthCheck({
14
+ test: [
15
+ "CMD",
16
+ "rabbitmq-diagnostics",
17
+ "-q",
18
+ "ping"
19
+ ],
20
+ interval: 1e3,
21
+ retries: 30,
22
+ startPeriod: 3e3,
23
+ timeout: 5e3
24
+ }).withWaitStrategy(Wait.forHealthCheck()).start();
25
+ console.log("โœ… RabbitMQ container started");
26
+ const __TESTCONTAINERS_RABBITMQ_IP__ = rabbitmqContainer.getHost();
27
+ const __TESTCONTAINERS_RABBITMQ_PORT_5672__ = rabbitmqContainer.getMappedPort(5672);
28
+ const __TESTCONTAINERS_RABBITMQ_PORT_15672__ = rabbitmqContainer.getMappedPort(15672);
29
+ provide("__TESTCONTAINERS_RABBITMQ_IP__", __TESTCONTAINERS_RABBITMQ_IP__);
30
+ provide("__TESTCONTAINERS_RABBITMQ_PORT_5672__", __TESTCONTAINERS_RABBITMQ_PORT_5672__);
31
+ provide("__TESTCONTAINERS_RABBITMQ_PORT_15672__", __TESTCONTAINERS_RABBITMQ_PORT_15672__);
32
+ console.log(`๐Ÿš€ RabbitMQ test environment is ready at ${__TESTCONTAINERS_RABBITMQ_IP__}:${__TESTCONTAINERS_RABBITMQ_PORT_5672__}`);
33
+ console.log(`๐Ÿ“Š RabbitMQ management console available at http://${__TESTCONTAINERS_RABBITMQ_IP__}:${__TESTCONTAINERS_RABBITMQ_PORT_15672__}`);
34
+ return async () => {
35
+ console.log("๐Ÿงน Stopping RabbitMQ test environment...");
36
+ await rabbitmqContainer.stop();
37
+ console.log("โœ… RabbitMQ test environment stopped");
38
+ };
39
+ }
40
+
41
+ //#endregion
42
+ export { setup as default };
43
+ //# sourceMappingURL=global-setup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-setup.mjs","names":[],"sources":["../src/global-setup.ts"],"sourcesContent":["import { GenericContainer, Wait } from \"testcontainers\";\nimport type { TestProject } from \"vitest/node\";\n\ndeclare module \"vitest\" {\n export interface ProvidedContext {\n __TESTCONTAINERS_RABBITMQ_IP__: string;\n __TESTCONTAINERS_RABBITMQ_PORT_5672__: number;\n __TESTCONTAINERS_RABBITMQ_PORT_15672__: number;\n }\n}\n\n/**\n * Setup function for Vitest globalSetup\n * Starts a RabbitMQ container before all tests\n */\nexport default async function setup({ provide }: TestProject) {\n console.log(\"๐Ÿณ Starting RabbitMQ test environment...\");\n\n // Start RabbitMQ container with management plugin\n const rabbitmqContainer = await new GenericContainer(\"rabbitmq:4.2.1-management-alpine\")\n .withExposedPorts(5672, 15672)\n .withEnvironment({\n RABBITMQ_DEFAULT_USER: \"guest\",\n RABBITMQ_DEFAULT_PASS: \"guest\",\n })\n .withHealthCheck({\n test: [\"CMD\", \"rabbitmq-diagnostics\", \"-q\", \"ping\"],\n interval: 1_000,\n retries: 30,\n startPeriod: 3_000,\n timeout: 5_000,\n })\n .withWaitStrategy(Wait.forHealthCheck())\n .start();\n\n console.log(\"โœ… RabbitMQ container started\");\n\n const __TESTCONTAINERS_RABBITMQ_IP__ = rabbitmqContainer.getHost();\n const __TESTCONTAINERS_RABBITMQ_PORT_5672__ = rabbitmqContainer.getMappedPort(5672);\n const __TESTCONTAINERS_RABBITMQ_PORT_15672__ = rabbitmqContainer.getMappedPort(15672);\n\n // Provide context values with type assertions to work around TypeScript limitations\n provide(\"__TESTCONTAINERS_RABBITMQ_IP__\", __TESTCONTAINERS_RABBITMQ_IP__);\n provide(\"__TESTCONTAINERS_RABBITMQ_PORT_5672__\", __TESTCONTAINERS_RABBITMQ_PORT_5672__);\n provide(\"__TESTCONTAINERS_RABBITMQ_PORT_15672__\", __TESTCONTAINERS_RABBITMQ_PORT_15672__);\n\n console.log(\n `๐Ÿš€ RabbitMQ test environment is ready at ${__TESTCONTAINERS_RABBITMQ_IP__}:${__TESTCONTAINERS_RABBITMQ_PORT_5672__}`,\n );\n console.log(\n `๐Ÿ“Š RabbitMQ management console available at http://${__TESTCONTAINERS_RABBITMQ_IP__}:${__TESTCONTAINERS_RABBITMQ_PORT_15672__}`,\n );\n\n // Return cleanup function\n return async () => {\n console.log(\"๐Ÿงน Stopping RabbitMQ test environment...\");\n await rabbitmqContainer.stop();\n console.log(\"โœ… RabbitMQ test environment stopped\");\n };\n}\n"],"mappings":";;;;;;;AAeA,eAA8B,MAAM,EAAE,WAAwB;AAC5D,SAAQ,IAAI,2CAA2C;CAGvD,MAAM,oBAAoB,MAAM,IAAI,iBAAiB,mCAAmC,CACrF,iBAAiB,MAAM,MAAM,CAC7B,gBAAgB;EACf,uBAAuB;EACvB,uBAAuB;EACxB,CAAC,CACD,gBAAgB;EACf,MAAM;GAAC;GAAO;GAAwB;GAAM;GAAO;EACnD,UAAU;EACV,SAAS;EACT,aAAa;EACb,SAAS;EACV,CAAC,CACD,iBAAiB,KAAK,gBAAgB,CAAC,CACvC,OAAO;AAEV,SAAQ,IAAI,+BAA+B;CAE3C,MAAM,iCAAiC,kBAAkB,SAAS;CAClE,MAAM,wCAAwC,kBAAkB,cAAc,KAAK;CACnF,MAAM,yCAAyC,kBAAkB,cAAc,MAAM;AAGrF,SAAQ,kCAAkC,+BAA+B;AACzE,SAAQ,yCAAyC,sCAAsC;AACvF,SAAQ,0CAA0C,uCAAuC;AAEzF,SAAQ,IACN,4CAA4C,+BAA+B,GAAG,wCAC/E;AACD,SAAQ,IACN,sDAAsD,+BAA+B,GAAG,yCACzF;AAGD,QAAO,YAAY;AACjB,UAAQ,IAAI,2CAA2C;AACvD,QAAM,kBAAkB,MAAM;AAC9B,UAAQ,IAAI,sCAAsC"}