@global-cache/core 0.4.0-3 → 0.4.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/client/config.d.ts +4 -6
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +17 -14
- package/dist/client/config.js.map +1 -1
- package/dist/client/index.d.ts +4 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +20 -15
- package/dist/client/index.js.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/config.ts +23 -15
- package/src/client/index.ts +23 -14
- package/src/server/index.ts +1 -1
package/dist/client/config.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ export type GlobalCacheConfig = {
|
|
|
5
5
|
serverUrl?: string;
|
|
6
6
|
};
|
|
7
7
|
type GlobalConfigInternal = GlobalCacheConfig & {
|
|
8
|
-
|
|
8
|
+
localRunId?: string;
|
|
9
|
+
externalRunId?: string;
|
|
9
10
|
localServerUrl?: string;
|
|
10
11
|
};
|
|
11
12
|
export declare class GlobalConfig {
|
|
@@ -15,19 +16,16 @@ export declare class GlobalConfig {
|
|
|
15
16
|
/**
|
|
16
17
|
* Generate new runId or re-use from env variable.
|
|
17
18
|
* There can be multiple test runs within single server session.
|
|
18
|
-
*
|
|
19
|
-
* Note: it could be a method on GlobalCacheClient, but having it here exposes it to public.
|
|
20
|
-
* Current approach is that test run is generated automatically on process start
|
|
21
|
-
* and cleared in reporter onEnd.
|
|
22
19
|
*/
|
|
23
20
|
newTestRun(): void;
|
|
21
|
+
get runId(): string;
|
|
22
|
+
get externalRunId(): string | undefined;
|
|
24
23
|
get localServerUrl(): string | undefined;
|
|
25
24
|
get externalServerUrl(): string | undefined;
|
|
26
25
|
get serverUrl(): string | undefined;
|
|
27
26
|
get ignoreTTL(): boolean;
|
|
28
27
|
get basePath(): string | undefined;
|
|
29
28
|
get disabled(): boolean;
|
|
30
|
-
get runId(): string;
|
|
31
29
|
}
|
|
32
30
|
export declare const globalConfig: GlobalConfig;
|
|
33
31
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG;IAE9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iBAAiB,GAAG;IAE9B,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAE9C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;;IAU1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAK5C;;;OAGG;IACH,UAAU;IASV,IAAI,KAAK,WAGR;IAED,IAAI,aAAa,uBAEhB;IAED,IAAI,cAAc,uBAEjB;IAED,IAAI,iBAAiB,uBAEpB;IAED,IAAI,SAAS,uBAEZ;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,QAAQ,uBAEX;IAED,IAAI,QAAQ,YAEX;CACF;AAYD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
package/dist/client/config.js
CHANGED
|
@@ -12,9 +12,9 @@ class GlobalConfig {
|
|
|
12
12
|
this.config = {};
|
|
13
13
|
Object.assign(this.config, getConfigFromEnv());
|
|
14
14
|
// Set runId when the main process starts, workers will re-use it.
|
|
15
|
-
// In VSCode, every click on test
|
|
16
|
-
//
|
|
17
|
-
if (!this.
|
|
15
|
+
// In VSCode, every click on test does not restart the main process,
|
|
16
|
+
// so we reset test run in reporter onEnd.
|
|
17
|
+
if (!this.runId)
|
|
18
18
|
this.newTestRun();
|
|
19
19
|
}
|
|
20
20
|
update(config) {
|
|
@@ -24,13 +24,22 @@ class GlobalConfig {
|
|
|
24
24
|
/**
|
|
25
25
|
* Generate new runId or re-use from env variable.
|
|
26
26
|
* There can be multiple test runs within single server session.
|
|
27
|
-
*
|
|
28
|
-
* Note: it could be a method on GlobalCacheClient, but having it here exposes it to public.
|
|
29
|
-
* Current approach is that test run is generated automatically on process start
|
|
30
|
-
* and cleared in reporter onEnd.
|
|
31
27
|
*/
|
|
32
28
|
newTestRun() {
|
|
33
|
-
|
|
29
|
+
const externalRunId = process.env.GLOBAL_CACHE_RUN_ID;
|
|
30
|
+
if (externalRunId) {
|
|
31
|
+
this.update({ externalRunId });
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.update({ localRunId: (0, node_crypto_1.randomUUID)() });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
get runId() {
|
|
38
|
+
const { externalRunId, localRunId } = this.config;
|
|
39
|
+
return externalRunId || localRunId || '';
|
|
40
|
+
}
|
|
41
|
+
get externalRunId() {
|
|
42
|
+
return this.config.externalRunId;
|
|
34
43
|
}
|
|
35
44
|
get localServerUrl() {
|
|
36
45
|
return this.config.localServerUrl;
|
|
@@ -50,12 +59,6 @@ class GlobalConfig {
|
|
|
50
59
|
get disabled() {
|
|
51
60
|
return Boolean(this.config.disabled);
|
|
52
61
|
}
|
|
53
|
-
get runId() {
|
|
54
|
-
const { runId } = this.config;
|
|
55
|
-
if (!runId)
|
|
56
|
-
throw new Error('RunId is not set.');
|
|
57
|
-
return runId;
|
|
58
|
-
}
|
|
59
62
|
}
|
|
60
63
|
exports.GlobalConfig = GlobalConfig;
|
|
61
64
|
function getConfigFromEnv() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,6CAAyC;AACzC,mDAAyD;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,6CAAyC;AACzC,mDAAyD;AAsBzD,MAAa,YAAY;IAGvB;QAFQ,WAAM,GAAyB,EAAE,CAAC;QAGxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/C,kEAAkE;QAClE,oEAAoE;QACpE,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,MAAqC;QAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC,CAAC;QACpD,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAA,wBAAU,GAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACP,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAClD,OAAO,aAAa,IAAI,UAAU,IAAI,EAAE,CAAC;IAC3C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACnC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;IACpC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC;IACvD,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF;AA7DD,oCA6DC;AAED,SAAS,gBAAgB;IACvB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACtD,OAAO,aAAa,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;AACtF,CAAC;AAED,SAAS,eAAe,CAAC,MAAyB;IAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,+BAA+B;AAClB,QAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
package/dist/client/index.d.ts
CHANGED
|
@@ -28,9 +28,11 @@ export declare class GlobalCacheClient<S extends DefaultKeysSchema = DefaultKeys
|
|
|
28
28
|
*/
|
|
29
29
|
getStaleList<ValueType>(prefix: string): Promise<ValueType[]>;
|
|
30
30
|
/**
|
|
31
|
-
*
|
|
31
|
+
* Reset current test run:
|
|
32
|
+
* - clear all non-persistent values
|
|
33
|
+
* - generate new test run ID
|
|
32
34
|
*/
|
|
33
|
-
|
|
35
|
+
resetTestRun(): Promise<void>;
|
|
34
36
|
private computeValue;
|
|
35
37
|
}
|
|
36
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK3D,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,qBAAa,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAI5E,MAAM,CAAC,MAAM,EAAE,iBAAiB;IAIhC;;;;;;OAMG;IACH,OAAO,KAAK,GAAG,GAGd;IAED;;OAEG;IAEG,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAsDzE;;;;OAIG;IACG,QAAQ,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IAQ9C;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM;IAQ5C
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK3D,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,qBAAa,iBAAiB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB;IAI5E,MAAM,CAAC,MAAM,EAAE,iBAAiB;IAIhC;;;;;;OAMG;IACH,OAAO,KAAK,GAAG,GAGd;IAED;;OAEG;IAEG,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAsDzE;;;;OAIG;IACG,QAAQ,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;IAQ9C;;;;OAIG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM;IAQ5C;;;;OAIG;IACG,YAAY;YA8BJ,YAAY;CAS3B"}
|
package/dist/client/index.js
CHANGED
|
@@ -96,32 +96,37 @@ class GlobalCacheClient {
|
|
|
96
96
|
return values;
|
|
97
97
|
}
|
|
98
98
|
/**
|
|
99
|
-
*
|
|
99
|
+
* Reset current test run:
|
|
100
|
+
* - clear all non-persistent values
|
|
101
|
+
* - generate new test run ID
|
|
100
102
|
*/
|
|
101
|
-
async
|
|
102
|
-
// If
|
|
103
|
+
async resetTestRun() {
|
|
104
|
+
// If server is stopped (CLI runs), no need to reset.
|
|
105
|
+
// But in VSCode runs, server is kept alive between test executions.
|
|
103
106
|
if (!config_1.globalConfig.serverUrl)
|
|
104
107
|
return;
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
if (!config_1.globalConfig.runId)
|
|
108
|
+
// don't clear external run ID, as it can be used by other shards.
|
|
109
|
+
if (config_1.globalConfig.externalRunId)
|
|
108
110
|
return;
|
|
111
|
+
if (!config_1.globalConfig.runId) {
|
|
112
|
+
logger_1.logger.warn(`Expected test run ID.`);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
109
115
|
(0, debug_1.debug)(`Clearing test-run: ${config_1.globalConfig.runId}`);
|
|
110
116
|
try {
|
|
111
117
|
await this.api.clearTestRun();
|
|
112
118
|
(0, debug_1.debug)('Cleared.');
|
|
113
119
|
}
|
|
114
120
|
catch (e) {
|
|
115
|
-
//
|
|
116
|
-
logger_1.logger.warn(`Failed to clear global-cache test run: ${e
|
|
117
|
-
}
|
|
118
|
-
finally {
|
|
119
|
-
// After clearing test run values, clear test run ID as well.
|
|
120
|
-
// This is useful for VSCode runs:
|
|
121
|
-
// when you make changes and re-run tests, it should grab the new values
|
|
122
|
-
// without trying to re-use cache.
|
|
123
|
-
config_1.globalConfig.update({ runId: '' });
|
|
121
|
+
// Show error as one-line warning to not mix with tests output.
|
|
122
|
+
logger_1.logger.warn(`Failed to clear global-cache test run: ${e?.message}`);
|
|
124
123
|
}
|
|
124
|
+
// Generate new test run id.
|
|
125
|
+
// This is useful for VSCode: when you make changes and re-run tests by click,
|
|
126
|
+
// it should re-compute values without trying to re-use cache.
|
|
127
|
+
// There is no place to reliably detect test run start:
|
|
128
|
+
// on subsequent runs in VSCode, Playwright config is evaluated only in workers.
|
|
129
|
+
config_1.globalConfig.newTestRun();
|
|
125
130
|
}
|
|
126
131
|
async computeValue(fn) {
|
|
127
132
|
try {
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -45,7 +45,7 @@ class GlobalCacheServer {
|
|
|
45
45
|
const config = (0, config_1.resolveConfig)(providedConfig);
|
|
46
46
|
(0, config_1.setConfig)(this.app, config);
|
|
47
47
|
this.server = await (0, express_2.startExpressServer)(this.app, config.port);
|
|
48
|
-
(0, debug_1.debug)(`Starting server: done
|
|
48
|
+
(0, debug_1.debug)(`Starting server: done ${this.localUrl}`);
|
|
49
49
|
}
|
|
50
50
|
async stop() {
|
|
51
51
|
if (!this.isRunning || !this.server)
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AASA,sDAA8B;AAC9B,2CAAwC;AACxC,wCAAoD;AACpD,sCAAkD;AAClD,sCAAkD;AAClD,kDAA6D;AAC7D,4DAAsE;AACtE,0CAA6D;AAC7D,mCAAuC;AACvC,qCAA6E;AAC7E,6CAAwE;AAExE,MAAa,iBAAiB;IAI5B;QAHQ,QAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QAChB,WAAM,GAAuB,IAAI,CAAC;QAGxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAa,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAiB,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,cAAiB,CAAC,CAAC;QACrC,gDAAgD;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,cAAwC;QAClD,sCAAsC;QACtC,IAAA,aAAK,EAAC,oBAAoB,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,cAAc,CAAC,CAAC;QAC7C,IAAA,kBAAS,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAA,aAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";;;;;;AASA,sDAA8B;AAC9B,2CAAwC;AACxC,wCAAoD;AACpD,sCAAkD;AAClD,sCAAkD;AAClD,kDAA6D;AAC7D,4DAAsE;AACtE,0CAA6D;AAC7D,mCAAuC;AACvC,qCAA6E;AAC7E,6CAAwE;AAExE,MAAa,iBAAiB;IAI5B;QAHQ,QAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;QAChB,WAAM,GAAuB,IAAI,CAAC;QAGxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,aAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,YAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,kBAAa,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAiB,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,cAAiB,CAAC,CAAC;QACrC,gDAAgD;QAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAY,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,cAAwC;QAClD,sCAAsC;QACtC,IAAA,aAAK,EAAC,oBAAoB,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,cAAc,CAAC,CAAC;QAC7C,IAAA,kBAAS,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAA,aAAK,EAAC,yBAAyB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC5C,IAAA,aAAK,EAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAA,2BAAiB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAA,aAAK,EAAC,wBAAwB,CAAC,CAAC;IAClC,CAAC;CACF;AAhDD,8CAgDC;AAED,sDAAsD;AACzC,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
package/package.json
CHANGED
package/src/client/config.ts
CHANGED
|
@@ -17,7 +17,11 @@ export type GlobalCacheConfig = {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
type GlobalConfigInternal = GlobalCacheConfig & {
|
|
20
|
-
|
|
20
|
+
/* Test run ID generated locally */
|
|
21
|
+
localRunId?: string;
|
|
22
|
+
/* Test run ID provided via env var (sharing) */
|
|
23
|
+
externalRunId?: string;
|
|
24
|
+
/* Local server URL started by setup */
|
|
21
25
|
localServerUrl?: string;
|
|
22
26
|
};
|
|
23
27
|
|
|
@@ -27,9 +31,9 @@ export class GlobalConfig {
|
|
|
27
31
|
constructor() {
|
|
28
32
|
Object.assign(this.config, getConfigFromEnv());
|
|
29
33
|
// Set runId when the main process starts, workers will re-use it.
|
|
30
|
-
// In VSCode, every click on test
|
|
31
|
-
//
|
|
32
|
-
if (!this.
|
|
34
|
+
// In VSCode, every click on test does not restart the main process,
|
|
35
|
+
// so we reset test run in reporter onEnd.
|
|
36
|
+
if (!this.runId) this.newTestRun();
|
|
33
37
|
}
|
|
34
38
|
|
|
35
39
|
update(config: Partial<GlobalConfigInternal>) {
|
|
@@ -40,13 +44,23 @@ export class GlobalConfig {
|
|
|
40
44
|
/**
|
|
41
45
|
* Generate new runId or re-use from env variable.
|
|
42
46
|
* There can be multiple test runs within single server session.
|
|
43
|
-
*
|
|
44
|
-
* Note: it could be a method on GlobalCacheClient, but having it here exposes it to public.
|
|
45
|
-
* Current approach is that test run is generated automatically on process start
|
|
46
|
-
* and cleared in reporter onEnd.
|
|
47
47
|
*/
|
|
48
48
|
newTestRun() {
|
|
49
|
-
|
|
49
|
+
const externalRunId = process.env.GLOBAL_CACHE_RUN_ID;
|
|
50
|
+
if (externalRunId) {
|
|
51
|
+
this.update({ externalRunId });
|
|
52
|
+
} else {
|
|
53
|
+
this.update({ localRunId: randomUUID() });
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
get runId() {
|
|
58
|
+
const { externalRunId, localRunId } = this.config;
|
|
59
|
+
return externalRunId || localRunId || '';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
get externalRunId() {
|
|
63
|
+
return this.config.externalRunId;
|
|
50
64
|
}
|
|
51
65
|
|
|
52
66
|
get localServerUrl() {
|
|
@@ -72,12 +86,6 @@ export class GlobalConfig {
|
|
|
72
86
|
get disabled() {
|
|
73
87
|
return Boolean(this.config.disabled);
|
|
74
88
|
}
|
|
75
|
-
|
|
76
|
-
get runId() {
|
|
77
|
-
const { runId } = this.config;
|
|
78
|
-
if (!runId) throw new Error('RunId is not set.');
|
|
79
|
-
return runId;
|
|
80
|
-
}
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
function getConfigFromEnv() {
|
package/src/client/index.ts
CHANGED
|
@@ -113,29 +113,38 @@ export class GlobalCacheClient<S extends DefaultKeysSchema = DefaultKeysSchema>
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
/**
|
|
116
|
-
*
|
|
116
|
+
* Reset current test run:
|
|
117
|
+
* - clear all non-persistent values
|
|
118
|
+
* - generate new test run ID
|
|
117
119
|
*/
|
|
118
|
-
async
|
|
119
|
-
// If
|
|
120
|
+
async resetTestRun() {
|
|
121
|
+
// If server is stopped (CLI runs), no need to reset.
|
|
122
|
+
// But in VSCode runs, server is kept alive between test executions.
|
|
120
123
|
if (!globalConfig.serverUrl) return;
|
|
121
|
-
|
|
122
|
-
//
|
|
123
|
-
if (
|
|
124
|
+
|
|
125
|
+
// don't clear external run ID, as it can be used by other shards.
|
|
126
|
+
if (globalConfig.externalRunId) return;
|
|
127
|
+
|
|
128
|
+
if (!globalConfig.runId) {
|
|
129
|
+
logger.warn(`Expected test run ID.`);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
124
132
|
|
|
125
133
|
debug(`Clearing test-run: ${globalConfig.runId}`);
|
|
126
134
|
try {
|
|
127
135
|
await this.api.clearTestRun();
|
|
128
136
|
debug('Cleared.');
|
|
129
137
|
} catch (e) {
|
|
130
|
-
//
|
|
131
|
-
logger.warn(`Failed to clear global-cache test run: ${
|
|
132
|
-
} finally {
|
|
133
|
-
// After clearing test run values, clear test run ID as well.
|
|
134
|
-
// This is useful for VSCode runs:
|
|
135
|
-
// when you make changes and re-run tests, it should grab the new values
|
|
136
|
-
// without trying to re-use cache.
|
|
137
|
-
globalConfig.update({ runId: '' });
|
|
138
|
+
// Show error as one-line warning to not mix with tests output.
|
|
139
|
+
logger.warn(`Failed to clear global-cache test run: ${e?.message}`);
|
|
138
140
|
}
|
|
141
|
+
|
|
142
|
+
// Generate new test run id.
|
|
143
|
+
// This is useful for VSCode: when you make changes and re-run tests by click,
|
|
144
|
+
// it should re-compute values without trying to re-use cache.
|
|
145
|
+
// There is no place to reliably detect test run start:
|
|
146
|
+
// on subsequent runs in VSCode, Playwright config is evaluated only in workers.
|
|
147
|
+
globalConfig.newTestRun();
|
|
139
148
|
}
|
|
140
149
|
|
|
141
150
|
private async computeValue<ValueType>(fn: () => ValueType) {
|
package/src/server/index.ts
CHANGED
|
@@ -54,7 +54,7 @@ export class GlobalCacheServer {
|
|
|
54
54
|
const config = resolveConfig(providedConfig);
|
|
55
55
|
setConfig(this.app, config);
|
|
56
56
|
this.server = await startExpressServer(this.app, config.port);
|
|
57
|
-
debug(`Starting server: done
|
|
57
|
+
debug(`Starting server: done ${this.localUrl}`);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
async stop() {
|