@testchimp/playwright 0.1.1 → 0.1.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAqClD"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH;;;GAGG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CA0DlD"}
package/dist/runtime.js CHANGED
@@ -66,35 +66,55 @@ function readBatchInvocationId(projectRootDir) {
66
66
  */
67
67
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
68
  function installTrueCoverage(test) {
69
- test.beforeEach(async ({ page }, testInfo) => {
70
- const project = testInfo.project;
71
- const projectRootDir = project.rootDir ?? process.cwd();
72
- const testsFolder = (0, utils_1.deriveTestsFolder)(projectRootDir);
73
- const paths = (0, utils_1.derivePathsFromTestInfo)(testInfo, testsFolder, projectRootDir, false);
74
- const ciTestInfo = {
75
- folderPath: paths.folderPath,
76
- fileName: paths.fileName,
77
- suitePath: paths.suitePath,
78
- testName: paths.testName,
79
- };
80
- const branchName = (0, utils_1.getBranchName)();
81
- if (branchName)
82
- ciTestInfo.branchName = branchName;
83
- const env = process.env.TESTCHIMP_ENV || process.env.CI_ENVIRONMENT_NAME || process.env.NODE_ENV;
84
- if (env)
85
- ciTestInfo.environment = env;
86
- const release = process.env.TESTCHIMP_RELEASE;
87
- if (release)
88
- ciTestInfo.release = release;
89
- const batchInvocationId = readBatchInvocationId(projectRootDir);
90
- if (batchInvocationId)
91
- ciTestInfo.batchInvocationId = batchInvocationId;
92
- const jsonString = JSON.stringify(ciTestInfo);
93
- await page.addInitScript((info) => {
94
- globalThis.__TC_CI_TEST_INFO = info;
95
- }, jsonString);
69
+ // Use a page fixture override instead of beforeEach hooks.
70
+ //
71
+ // In Playwright, fixtures can navigate during setup. When CI info injection is only in `beforeEach`,
72
+ // a page may emit RUM before the hook runs, causing missing ci-test-info headers. Overriding the
73
+ // `page` fixture ensures the injection happens before user test code sees the page.
74
+ return test.extend({
75
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
76
+ page: async ({ page }, use, testInfo) => {
77
+ const project = testInfo.project;
78
+ const projectRootDir = project.rootDir ?? process.cwd();
79
+ const testsFolder = (0, utils_1.deriveTestsFolder)(projectRootDir);
80
+ const paths = (0, utils_1.derivePathsFromTestInfo)(testInfo, testsFolder, projectRootDir, false);
81
+ const ciTestInfo = {
82
+ folderPath: paths.folderPath,
83
+ fileName: paths.fileName,
84
+ suitePath: paths.suitePath,
85
+ testName: paths.testName,
86
+ };
87
+ const branchName = (0, utils_1.getBranchName)();
88
+ if (branchName)
89
+ ciTestInfo.branchName = branchName;
90
+ const env = process.env.TESTCHIMP_ENV || process.env.CI_ENVIRONMENT_NAME || process.env.NODE_ENV;
91
+ if (env)
92
+ ciTestInfo.environment = env;
93
+ const release = process.env.TESTCHIMP_RELEASE;
94
+ if (release)
95
+ ciTestInfo.release = release;
96
+ const batchInvocationId = readBatchInvocationId(projectRootDir);
97
+ if (batchInvocationId)
98
+ ciTestInfo.batchInvocationId = batchInvocationId;
99
+ const jsonString = JSON.stringify(ciTestInfo);
100
+ await page.addInitScript((info) => {
101
+ // Browser main thread: globalThis is window.
102
+ globalThis.__TC_CI_TEST_INFO = info;
103
+ }, jsonString);
104
+ // Also set on the currently loaded page (if any). `addInitScript` only affects future documents,
105
+ // so without this, apps that initialize RUM on the first loaded document can emit events before
106
+ // the init script ever runs.
107
+ try {
108
+ await page.evaluate((info) => {
109
+ globalThis.__TC_CI_TEST_INFO = info;
110
+ }, jsonString);
111
+ }
112
+ catch {
113
+ // Ignore: page may be closed or not ready yet.
114
+ }
115
+ await use(page);
116
+ },
96
117
  });
97
- return test;
98
118
  }
99
119
  // IMPORTANT: resolve @playwright/test from the *consumer* project, not from this package.
100
120
  const pwRequire = (0, module_1.createRequire)(path.join(process.cwd(), 'package.json'));
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,kDAqCC;AA7DD,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAuC;AACvC,mCAAoF;AAEpF,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAE3D,SAAS,qBAAqB,CAAC,cAAsB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;IAC1D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IACtF,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,8DAA8D;AAC9D,SAAgB,mBAAmB,CAAC,IAAS;IAC3C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAiB,EAAE,QAAa,EAAE,EAAE;QAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAA+B,CAAC;QACzD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,IAAA,yBAAiB,EAAC,cAAc,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,IAAA,+BAAuB,EACnC,QAAoE,EACpE,WAAW,EACX,cAAc,EACd,KAAK,CACN,CAAC;QAEF,MAAM,UAAU,GAA4B;YAC1C,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC;QACF,MAAM,UAAU,GAAG,IAAA,qBAAa,GAAE,CAAC;QACnC,IAAI,UAAU;YAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;QACnD,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvF,IAAI,GAAG;YAAE,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC9C,IAAI,OAAO;YAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1C,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAChE,IAAI,iBAAiB;YAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAExE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,aAAa,CACtB,CAAC,IAAY,EAAE,EAAE;YACd,UAAwD,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACrF,CAAC,EACD,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,SAAS,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;AAC1E,8DAA8D;AAC9D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,kBAAkB,CAAQ,CAAC;AAEhE,mBAAmB,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@testchimp/playwright",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Playwright reporter for TestChimp test execution tracking and coverage reporting",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",