@get-skipper/playwright 1.0.1 → 1.2.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/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -59,7 +59,7 @@ var import_core2 = require("@get-skipper/core");
|
|
|
59
59
|
var import_test2 = require("@playwright/test");
|
|
60
60
|
var test = import_test.test.extend({
|
|
61
61
|
_skipperResolver: [
|
|
62
|
-
async (
|
|
62
|
+
async (_, use) => {
|
|
63
63
|
const raw = fs2.readFileSync(SKIPPER_CACHE_PATH, "utf8");
|
|
64
64
|
const data = JSON.parse(raw);
|
|
65
65
|
const resolver = import_core2.SkipperResolver.fromJSON(data);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/globalSetup.ts","../src/fixtures.ts","../src/reporter.ts"],"sourcesContent":["export { createSkipperGlobalSetup } from './globalSetup';\nexport { test, expect } from './fixtures';\nexport { SkipperReporter } from './reporter';\nexport type { SkipperConfig } from '@get-skipper/core';\n","import * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { SkipperResolver, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\nexport const SKIPPER_CACHE_PATH = path.join(os.tmpdir(), '.skipper-playwright-cache.json');\n\nexport function createSkipperGlobalSetup(config: SkipperConfig) {\n return async function skipperGlobalSetup(): Promise<void> {\n const resolver = new SkipperResolver(config);\n await resolver.initialize();\n fs.writeFileSync(SKIPPER_CACHE_PATH, JSON.stringify(resolver.toJSON()), 'utf8');\n log('[skipper] Spreadsheet loaded and cache written.');\n };\n}\n","import * as fs from 'fs';\nimport { test as base } from '@playwright/test';\nimport { SkipperResolver, buildTestId } from '@get-skipper/core';\nimport { SKIPPER_CACHE_PATH } from './globalSetup';\n\ntype SkipperWorkerFixtures = {\n _skipperResolver: SkipperResolver;\n};\n\ntype SkipperTestFixtures = {\n _skipperAutoSkip: void;\n};\n\n/**\n * Extended Playwright `test` that automatically skips tests disabled in the spreadsheet.\n *\n * The resolver is initialized once per worker (reading from the cache file written\n * by the globalSetup). Each test is checked via an auto-use fixture.\n *\n * Usage: replace `import { test } from '@playwright/test'`\n * with `import { test } from '@get-skipper/playwright'`\n */\nexport const test = base.extend<SkipperTestFixtures, SkipperWorkerFixtures>({\n _skipperResolver: [\n async (
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/globalSetup.ts","../src/fixtures.ts","../src/reporter.ts"],"sourcesContent":["export { createSkipperGlobalSetup } from './globalSetup';\nexport { test, expect } from './fixtures';\nexport { SkipperReporter } from './reporter';\nexport type { SkipperConfig } from '@get-skipper/core';\n","import * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { SkipperResolver, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\nexport const SKIPPER_CACHE_PATH = path.join(os.tmpdir(), '.skipper-playwright-cache.json');\n\nexport function createSkipperGlobalSetup(config: SkipperConfig) {\n return async function skipperGlobalSetup(): Promise<void> {\n const resolver = new SkipperResolver(config);\n await resolver.initialize();\n fs.writeFileSync(SKIPPER_CACHE_PATH, JSON.stringify(resolver.toJSON()), 'utf8');\n log('[skipper] Spreadsheet loaded and cache written.');\n };\n}\n","import * as fs from 'fs';\nimport { test as base } from '@playwright/test';\nimport { SkipperResolver, buildTestId } from '@get-skipper/core';\nimport { SKIPPER_CACHE_PATH } from './globalSetup';\n\ntype SkipperWorkerFixtures = {\n _skipperResolver: SkipperResolver;\n};\n\ntype SkipperTestFixtures = {\n _skipperAutoSkip: void;\n};\n\n/**\n * Extended Playwright `test` that automatically skips tests disabled in the spreadsheet.\n *\n * The resolver is initialized once per worker (reading from the cache file written\n * by the globalSetup). Each test is checked via an auto-use fixture.\n *\n * Usage: replace `import { test } from '@playwright/test'`\n * with `import { test } from '@get-skipper/playwright'`\n */\nexport const test = base.extend<SkipperTestFixtures, SkipperWorkerFixtures>({\n _skipperResolver: [\n async (_: Record<never, never>, use) => {\n const raw = fs.readFileSync(SKIPPER_CACHE_PATH, 'utf8');\n const data = JSON.parse(raw) as Record<string, string | null>;\n const resolver = SkipperResolver.fromJSON(data);\n await use(resolver);\n },\n { scope: 'worker' },\n ],\n\n _skipperAutoSkip: [\n async ({ _skipperResolver }, use, testInfo) => {\n const titlePath = testInfo.titlePath.filter(Boolean);\n const testId = buildTestId(testInfo.file, titlePath);\n\n if (!_skipperResolver.isTestEnabled(testId)) {\n testInfo.skip(true, `[skipper] Disabled until date in spreadsheet has not passed yet.`);\n }\n\n await use();\n },\n { auto: true },\n ],\n});\n\nexport { expect } from '@playwright/test';\n","import type { Reporter, TestCase, TestResult, FullResult } from '@playwright/test/reporter';\nimport { SheetsWriter, buildTestId, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\n/**\n * SkipperReporter collects all test IDs discovered during the run.\n * In sync mode (`SKIPPER_MODE=sync`), it reconciles the spreadsheet on completion:\n * - Adds new tests (with empty disabledUntil)\n * - Removes rows for tests no longer in the suite\n *\n * Add to playwright.config.ts:\n * ```ts\n * reporter: [['list'], [SkipperReporter, skipperConfig]]\n * ```\n */\nexport class SkipperReporter implements Reporter {\n private readonly config: SkipperConfig;\n private readonly discoveredIds: string[] = [];\n\n constructor(config: SkipperConfig) {\n this.config = config;\n }\n\n onTestEnd(test: TestCase, _result: TestResult): void {\n const titlePath = test.titlePath().filter(Boolean);\n const testId = buildTestId(test.location.file, titlePath);\n this.discoveredIds.push(testId);\n }\n\n async onEnd(_result: FullResult): Promise<void> {\n const mode = process.env.SKIPPER_MODE;\n if (mode !== 'sync') return;\n\n if (this.discoveredIds.length === 0) {\n log('[skipper] No tests discovered — skipping spreadsheet sync.');\n return;\n }\n\n log(`[skipper] Syncing ${this.discoveredIds.length} test(s) to spreadsheet…`);\n const writer = new SheetsWriter(this.config);\n await writer.sync(this.discoveredIds);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,SAAoB;AACpB,SAAoB;AACpB,WAAsB;AACtB,kBAAqC;AAG9B,IAAM,qBAA0B,UAAQ,UAAO,GAAG,gCAAgC;AAElF,SAAS,yBAAyB,QAAuB;AAC9D,SAAO,eAAe,qBAAoC;AACxD,UAAM,WAAW,IAAI,4BAAgB,MAAM;AAC3C,UAAM,SAAS,WAAW;AAC1B,IAAG,iBAAc,oBAAoB,KAAK,UAAU,SAAS,OAAO,CAAC,GAAG,MAAM;AAC9E,yBAAI,iDAAiD;AAAA,EACvD;AACF;;;ACfA,IAAAA,MAAoB;AACpB,kBAA6B;AAC7B,IAAAC,eAA6C;AA8C7C,IAAAC,eAAuB;AA1BhB,IAAM,OAAO,YAAAC,KAAK,OAAmD;AAAA,EAC1E,kBAAkB;AAAA,IAChB,OAAO,GAAyB,QAAQ;AACtC,YAAM,MAAS,iBAAa,oBAAoB,MAAM;AACtD,YAAM,OAAO,KAAK,MAAM,GAAG;AAC3B,YAAM,WAAW,6BAAgB,SAAS,IAAI;AAC9C,YAAM,IAAI,QAAQ;AAAA,IACpB;AAAA,IACA,EAAE,OAAO,SAAS;AAAA,EACpB;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO,EAAE,iBAAiB,GAAG,KAAK,aAAa;AAC7C,YAAM,YAAY,SAAS,UAAU,OAAO,OAAO;AACnD,YAAM,aAAS,0BAAY,SAAS,MAAM,SAAS;AAEnD,UAAI,CAAC,iBAAiB,cAAc,MAAM,GAAG;AAC3C,iBAAS,KAAK,MAAM,kEAAkE;AAAA,MACxF;AAEA,YAAM,IAAI;AAAA,IACZ;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AACF,CAAC;;;AC7CD,IAAAC,eAA+C;AAcxC,IAAM,kBAAN,MAA0C;AAAA,EAI/C,YAAY,QAAuB;AAFnC,SAAiB,gBAA0B,CAAC;AAG1C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,UAAUC,OAAgB,SAA2B;AACnD,UAAM,YAAYA,MAAK,UAAU,EAAE,OAAO,OAAO;AACjD,UAAM,aAAS,0BAAYA,MAAK,SAAS,MAAM,SAAS;AACxD,SAAK,cAAc,KAAK,MAAM;AAAA,EAChC;AAAA,EAEA,MAAM,MAAM,SAAoC;AAC9C,UAAM,OAAO,QAAQ,IAAI;AACzB,QAAI,SAAS,OAAQ;AAErB,QAAI,KAAK,cAAc,WAAW,GAAG;AACnC,4BAAI,iEAA4D;AAChE;AAAA,IACF;AAEA,0BAAI,qBAAqB,KAAK,cAAc,MAAM,+BAA0B;AAC5E,UAAM,SAAS,IAAI,0BAAa,KAAK,MAAM;AAC3C,UAAM,OAAO,KAAK,KAAK,aAAa;AAAA,EACtC;AACF;","names":["fs","import_core","import_test","base","import_core","test"]}
|
package/dist/index.mjs
CHANGED
|
@@ -20,7 +20,7 @@ import { SkipperResolver as SkipperResolver2, buildTestId } from "@get-skipper/c
|
|
|
20
20
|
import { expect } from "@playwright/test";
|
|
21
21
|
var test = base.extend({
|
|
22
22
|
_skipperResolver: [
|
|
23
|
-
async (
|
|
23
|
+
async (_, use) => {
|
|
24
24
|
const raw = fs2.readFileSync(SKIPPER_CACHE_PATH, "utf8");
|
|
25
25
|
const data = JSON.parse(raw);
|
|
26
26
|
const resolver = SkipperResolver2.fromJSON(data);
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/globalSetup.ts","../src/fixtures.ts","../src/reporter.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { SkipperResolver, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\nexport const SKIPPER_CACHE_PATH = path.join(os.tmpdir(), '.skipper-playwright-cache.json');\n\nexport function createSkipperGlobalSetup(config: SkipperConfig) {\n return async function skipperGlobalSetup(): Promise<void> {\n const resolver = new SkipperResolver(config);\n await resolver.initialize();\n fs.writeFileSync(SKIPPER_CACHE_PATH, JSON.stringify(resolver.toJSON()), 'utf8');\n log('[skipper] Spreadsheet loaded and cache written.');\n };\n}\n","import * as fs from 'fs';\nimport { test as base } from '@playwright/test';\nimport { SkipperResolver, buildTestId } from '@get-skipper/core';\nimport { SKIPPER_CACHE_PATH } from './globalSetup';\n\ntype SkipperWorkerFixtures = {\n _skipperResolver: SkipperResolver;\n};\n\ntype SkipperTestFixtures = {\n _skipperAutoSkip: void;\n};\n\n/**\n * Extended Playwright `test` that automatically skips tests disabled in the spreadsheet.\n *\n * The resolver is initialized once per worker (reading from the cache file written\n * by the globalSetup). Each test is checked via an auto-use fixture.\n *\n * Usage: replace `import { test } from '@playwright/test'`\n * with `import { test } from '@get-skipper/playwright'`\n */\nexport const test = base.extend<SkipperTestFixtures, SkipperWorkerFixtures>({\n _skipperResolver: [\n async (
|
|
1
|
+
{"version":3,"sources":["../src/globalSetup.ts","../src/fixtures.ts","../src/reporter.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as os from 'os';\nimport * as path from 'path';\nimport { SkipperResolver, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\nexport const SKIPPER_CACHE_PATH = path.join(os.tmpdir(), '.skipper-playwright-cache.json');\n\nexport function createSkipperGlobalSetup(config: SkipperConfig) {\n return async function skipperGlobalSetup(): Promise<void> {\n const resolver = new SkipperResolver(config);\n await resolver.initialize();\n fs.writeFileSync(SKIPPER_CACHE_PATH, JSON.stringify(resolver.toJSON()), 'utf8');\n log('[skipper] Spreadsheet loaded and cache written.');\n };\n}\n","import * as fs from 'fs';\nimport { test as base } from '@playwright/test';\nimport { SkipperResolver, buildTestId } from '@get-skipper/core';\nimport { SKIPPER_CACHE_PATH } from './globalSetup';\n\ntype SkipperWorkerFixtures = {\n _skipperResolver: SkipperResolver;\n};\n\ntype SkipperTestFixtures = {\n _skipperAutoSkip: void;\n};\n\n/**\n * Extended Playwright `test` that automatically skips tests disabled in the spreadsheet.\n *\n * The resolver is initialized once per worker (reading from the cache file written\n * by the globalSetup). Each test is checked via an auto-use fixture.\n *\n * Usage: replace `import { test } from '@playwright/test'`\n * with `import { test } from '@get-skipper/playwright'`\n */\nexport const test = base.extend<SkipperTestFixtures, SkipperWorkerFixtures>({\n _skipperResolver: [\n async (_: Record<never, never>, use) => {\n const raw = fs.readFileSync(SKIPPER_CACHE_PATH, 'utf8');\n const data = JSON.parse(raw) as Record<string, string | null>;\n const resolver = SkipperResolver.fromJSON(data);\n await use(resolver);\n },\n { scope: 'worker' },\n ],\n\n _skipperAutoSkip: [\n async ({ _skipperResolver }, use, testInfo) => {\n const titlePath = testInfo.titlePath.filter(Boolean);\n const testId = buildTestId(testInfo.file, titlePath);\n\n if (!_skipperResolver.isTestEnabled(testId)) {\n testInfo.skip(true, `[skipper] Disabled until date in spreadsheet has not passed yet.`);\n }\n\n await use();\n },\n { auto: true },\n ],\n});\n\nexport { expect } from '@playwright/test';\n","import type { Reporter, TestCase, TestResult, FullResult } from '@playwright/test/reporter';\nimport { SheetsWriter, buildTestId, log } from '@get-skipper/core';\nimport type { SkipperConfig } from '@get-skipper/core';\n\n/**\n * SkipperReporter collects all test IDs discovered during the run.\n * In sync mode (`SKIPPER_MODE=sync`), it reconciles the spreadsheet on completion:\n * - Adds new tests (with empty disabledUntil)\n * - Removes rows for tests no longer in the suite\n *\n * Add to playwright.config.ts:\n * ```ts\n * reporter: [['list'], [SkipperReporter, skipperConfig]]\n * ```\n */\nexport class SkipperReporter implements Reporter {\n private readonly config: SkipperConfig;\n private readonly discoveredIds: string[] = [];\n\n constructor(config: SkipperConfig) {\n this.config = config;\n }\n\n onTestEnd(test: TestCase, _result: TestResult): void {\n const titlePath = test.titlePath().filter(Boolean);\n const testId = buildTestId(test.location.file, titlePath);\n this.discoveredIds.push(testId);\n }\n\n async onEnd(_result: FullResult): Promise<void> {\n const mode = process.env.SKIPPER_MODE;\n if (mode !== 'sync') return;\n\n if (this.discoveredIds.length === 0) {\n log('[skipper] No tests discovered — skipping spreadsheet sync.');\n return;\n }\n\n log(`[skipper] Syncing ${this.discoveredIds.length} test(s) to spreadsheet…`);\n const writer = new SheetsWriter(this.config);\n await writer.sync(this.discoveredIds);\n }\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,iBAAiB,WAAW;AAG9B,IAAM,qBAA0B,UAAQ,UAAO,GAAG,gCAAgC;AAElF,SAAS,yBAAyB,QAAuB;AAC9D,SAAO,eAAe,qBAAoC;AACxD,UAAM,WAAW,IAAI,gBAAgB,MAAM;AAC3C,UAAM,SAAS,WAAW;AAC1B,IAAG,iBAAc,oBAAoB,KAAK,UAAU,SAAS,OAAO,CAAC,GAAG,MAAM;AAC9E,QAAI,iDAAiD;AAAA,EACvD;AACF;;;ACfA,YAAYA,SAAQ;AACpB,SAAS,QAAQ,YAAY;AAC7B,SAAS,mBAAAC,kBAAiB,mBAAmB;AA8C7C,SAAS,cAAc;AA1BhB,IAAM,OAAO,KAAK,OAAmD;AAAA,EAC1E,kBAAkB;AAAA,IAChB,OAAO,GAAyB,QAAQ;AACtC,YAAM,MAAS,iBAAa,oBAAoB,MAAM;AACtD,YAAM,OAAO,KAAK,MAAM,GAAG;AAC3B,YAAM,WAAWC,iBAAgB,SAAS,IAAI;AAC9C,YAAM,IAAI,QAAQ;AAAA,IACpB;AAAA,IACA,EAAE,OAAO,SAAS;AAAA,EACpB;AAAA,EAEA,kBAAkB;AAAA,IAChB,OAAO,EAAE,iBAAiB,GAAG,KAAK,aAAa;AAC7C,YAAM,YAAY,SAAS,UAAU,OAAO,OAAO;AACnD,YAAM,SAAS,YAAY,SAAS,MAAM,SAAS;AAEnD,UAAI,CAAC,iBAAiB,cAAc,MAAM,GAAG;AAC3C,iBAAS,KAAK,MAAM,kEAAkE;AAAA,MACxF;AAEA,YAAM,IAAI;AAAA,IACZ;AAAA,IACA,EAAE,MAAM,KAAK;AAAA,EACf;AACF,CAAC;;;AC7CD,SAAS,cAAc,eAAAC,cAAa,OAAAC,YAAW;AAcxC,IAAM,kBAAN,MAA0C;AAAA,EAI/C,YAAY,QAAuB;AAFnC,SAAiB,gBAA0B,CAAC;AAG1C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,UAAUC,OAAgB,SAA2B;AACnD,UAAM,YAAYA,MAAK,UAAU,EAAE,OAAO,OAAO;AACjD,UAAM,SAASF,aAAYE,MAAK,SAAS,MAAM,SAAS;AACxD,SAAK,cAAc,KAAK,MAAM;AAAA,EAChC;AAAA,EAEA,MAAM,MAAM,SAAoC;AAC9C,UAAM,OAAO,QAAQ,IAAI;AACzB,QAAI,SAAS,OAAQ;AAErB,QAAI,KAAK,cAAc,WAAW,GAAG;AACnC,MAAAD,KAAI,iEAA4D;AAChE;AAAA,IACF;AAEA,IAAAA,KAAI,qBAAqB,KAAK,cAAc,MAAM,+BAA0B;AAC5E,UAAM,SAAS,IAAI,aAAa,KAAK,MAAM;AAC3C,UAAM,OAAO,KAAK,KAAK,aAAa;AAAA,EACtC;AACF;","names":["fs","SkipperResolver","SkipperResolver","buildTestId","log","test"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@get-skipper/playwright",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Skipper plugin for Playwright — enable/disable tests from a Google Spreadsheet",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skipper",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"LICENSE"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@get-skipper/core": "1.0
|
|
29
|
+
"@get-skipper/core": "1.2.0"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"@playwright/test": ">=1.40.0"
|