UNPKG

@firestore-emulator/jest

Version:

This package contains a [`Jest`](https://jestjs.io/) environment for setup `@firestore-emulator/server`.

1 lines 2.27 kB
{"version":3,"sources":["../../src/environment/node.ts"],"sourcesContent":["import { FirestoreServer } from \"@firestore-emulator/server\";\nimport type {\n EnvironmentContext,\n JestEnvironmentConfig,\n} from \"@jest/environment\";\nimport { findFreePorts } from \"find-free-ports\";\nimport { TestEnvironment } from \"jest-environment-node\";\n\nimport type { FirestoreEmulatorEnvironmentConfig } from \"../types\";\n\nexport default class FirestoreEmulatorEnvironment extends TestEnvironment {\n private server: FirestoreServer;\n\n constructor(\n config: FirestoreEmulatorEnvironmentConfig & JestEnvironmentConfig,\n context: EnvironmentContext,\n ) {\n super(config, context);\n this.server = new FirestoreServer();\n }\n\n override async setup() {\n await super.setup();\n\n let tryCount = 0;\n while (tryCount < 50) {\n const [port] = await findFreePorts(1);\n if (!port) throw new Error(\"Could not find a free port\");\n try {\n await this.server.start(port);\n this.global.emulator = {\n host: `0.0.0.0:${port}`,\n port,\n state: this.server.state,\n };\n return;\n } catch (err) {\n if (!(err instanceof Error)) throw err;\n if (!err.message.startsWith(\"No address added out of total\")) throw err;\n }\n tryCount++;\n }\n throw new Error(\"Could not find a free port\");\n }\n\n override async teardown() {\n this.server.stop();\n await super.teardown();\n }\n}\n"],"mappings":";AAAA,SAAS,uBAAuB;AAKhC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAIhC,IAAqB,+BAArB,cAA0D,gBAAgB;AAAA,EAChE;AAAA,EAER,YACE,QACA,SACA;AACA,UAAM,QAAQ,OAAO;AACrB,SAAK,SAAS,IAAI,gBAAgB;AAAA,EACpC;AAAA,EAEA,MAAe,QAAQ;AACrB,UAAM,MAAM,MAAM;AAElB,QAAI,WAAW;AACf,WAAO,WAAW,IAAI;AACpB,YAAM,CAAC,IAAI,IAAI,MAAM,cAAc,CAAC;AACpC,UAAI,CAAC,KAAM,OAAM,IAAI,MAAM,4BAA4B;AACvD,UAAI;AACF,cAAM,KAAK,OAAO,MAAM,IAAI;AAC5B,aAAK,OAAO,WAAW;AAAA,UACrB,MAAM,WAAW,IAAI;AAAA,UACrB;AAAA,UACA,OAAO,KAAK,OAAO;AAAA,QACrB;AACA;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,EAAE,eAAe,OAAQ,OAAM;AACnC,YAAI,CAAC,IAAI,QAAQ,WAAW,+BAA+B,EAAG,OAAM;AAAA,MACtE;AACA;AAAA,IACF;AACA,UAAM,IAAI,MAAM,4BAA4B;AAAA,EAC9C;AAAA,EAEA,MAAe,WAAW;AACxB,SAAK,OAAO,KAAK;AACjB,UAAM,MAAM,SAAS;AAAA,EACvB;AACF;","names":[]}