[FSSDK-10882] ProjectConfigManager SSR support #878
Triggered via pull request
November 21, 2024 13:42
Status
Failure
Total duration
6h 0m 24s
Artifacts
–
javascript.yml
on: pull_request
Matrix: unit_tests
lint_markdown_files
/
lint
53s
lint
55s
integration_tests
/
test
7s
fullstack_production_suite
/
test
6s
crossbrowser_and_umd_unit_tests
6h 0m
Coveralls coverage
0s
Annotations
45 errors and 15 warnings
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() before datafileManger.onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L125
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:125:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() even if datafileManger.onRunning() rejects:
lib/project_config/project_config_manager.spec.ts#L138
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:138:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning() if datafileManager.onUpdate() is fired and should update config:
lib/project_config/project_config_manager.spec.ts#L194
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:194:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:192:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L206
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:206:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:201:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L224
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:224:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:221:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L255
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:255:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:250:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L273
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:273:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:270:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should update the config and call onUpdate handlers when datafileManager onUpdate is fired with valid datafile:
lib/project_config/project_config_manager.spec.ts#L298
AssertionError: expected { revision: '42', version: '2', …(26) } to deeply equal { revision: '99', version: '2', …(26) }
- Expected
+ Received
Object {
- "__datafileStr": "{\"revision\":\"99\",\"version\":\"2\",\"events\":[{\"key\":\"testEvent\",\"experimentIds\":[\"111127\"],\"id\":\"111095\"},{\"key\":\"Total Revenue\",\"experimentIds\":[\"111127\"],\"id\":\"111096\"},{\"key\":\"testEventWithAudiences\",\"experimentIds\":[\"122227\"],\"id\":\"111097\"},{\"key\":\"testEventWithoutExperiments\",\"experimentIds\":[],\"id\":\"111098\"},{\"key\":\"testEventWithExperimentNotRunning\",\"experimentIds\":[\"133337\"],\"id\":\"111099\"},{\"key\":\"testEventWithMultipleExperiments\",\"experimentIds\":[\"111127\",\"122227\",\"133337\"],\"id\":\"111100\"},{\"key\":\"testEventLaunched\",\"experimentIds\":[\"144447\"],\"id\":\"111101\"}],\"groups\":[{\"id\":\"666\",\"policy\":\"random\",\"trafficAllocation\":[{\"entityId\":\"442\",\"endOfRange\":3000},{\"entityId\":\"443\",\"endOfRange\":6000}],\"experiments\":[{\"id\":\"442\",\"key\":\"groupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"551\",\"key\":\"var1exp1\"},{\"id\":\"552\",\"key\":\"var2exp1\"}],\"trafficAllocation\":[{\"entityId\":\"551\",\"endOfRange\":5000},{\"entityId\":\"552\",\"endOfRange\":9000},{\"entityId\":\"\",\"endOfRange\":10000}],\"audienceIds\":[\"11154\"],\"forcedVariations\":{},\"layerId\":\"1\"},{\"id\":\"443\",\"key\":\"groupExperiment2\",\"status\":\"Running\",\"variations\":[{\"id\":\"661\",\"key\":\"var1exp2\"},{\"id\":\"662\",\"key\":\"var2exp2\"}],\"trafficAllocation\":[{\"entityId\":\"661\",\"endOfRange\":5000},{\"entityId\":\"662\",\"endOfRange\":10000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"2\"}]},{\"id\":\"667\",\"policy\":\"overlapping\",\"trafficAllocation\":[],\"experiments\":[{\"id\":\"444\",\"key\":\"overlappingGroupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"553\",\"key\":\"overlappingvar1\"},{\"id\":\"554\",\"key\":\"overlappingvar2\"}],\"trafficAllocation\":[{\"entityId\":\"553\",\"endOfRange\":1500},{\"entityId\":\"554\",\"endOfRange\":3000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"3\"}]}],\"experiments\":[{\"key\":\"testExperiment\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"control\",\"user2\":\"variation\"},\"audienceIds\":[],\"layerId\":\"4\",\"trafficAllocation\":[{\"entityId\":\"111128\",\"endOfRange\":4000},{\"entityId\":\"111129\",\"endOfRange\":9000}],\"id\":\"111127\",\"variations\":[{\"key\":\"control\",\"id\":\"111128\"},{\"key\":\"variation\",\"id\":\"111129\"}]},{\"key\":\"testExperimentWithAudiences\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"controlWithAudience\",\"user2\":\"variationWithAudience\"},\"audienceIds\":[\"11154\"],\"layerId\":\"5\",\"trafficAllocation\":[{\"entityId\":\"122228\",\"endOfRange\":4000},{\"entityId\":\"122229\",\"endOfRange\":10000}],\"id\":\"122227\",\"variations\":[{\"key\":\"controlWithAudience\",\"id\":\"122228\"},{\"key\":\"variationWithAudience\",\"id\":\"122229\"}]},{\"key\":\"testExperimentNotRunning\",\"status\":\"Not started\",\"forcedVariations\":{\"user1\":\"controlNotRunning\",\"user2\":\"variationNotRunning\"},\"audienceIds\":[],\"layerId\":\"6\",\"trafficAllocation\":[{\"entityId\":\"133338\",\"endOfRange\":4000},{\"entityId\":\"133339\",\"endOfRange\":10000}],\"id\":\"133337\",\"variations\":[{\"key\":\"controlNotRunning\",\"id\":\"133338\"},{\"key\":\"variationNotRunning\",\"id\":\"133339\"}]},{\"key\":\"testExperimentLaunched\",\"status\":\"Launched\",\"forcedVariations\":{},\"audienceIds\":[],\"layerId\":\"7\",\"trafficAllocation\":[{\"entityId\":\"144448\",\"endOfRange\":5000},{\"entityId\":\"144449\",\"endOfRange\":10000}],\"id\":\"144447\",\"variations\":[{\"key\":\"controlLaunched\",\"id\":\"144448\"},{\"key\":\"variationLaunched\",\"id\":\"144449\"}]}],\"accountId\":\"12001\",\"attributes\":[{\"key\":\"browser_type\",\"id\":\"111094\"},{\"id\":\"323434545\",\"key\":\"boolean_key\"},{\"id\":\"616727838\",\"key\":\"integer_key\"},{\"id\":\"808797686\",\"key\":\"double_key\
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should not call onUpdate handlers and should log error when datafileManager onUpdate is fired with invalid datafile:
lib/project_config/project_config_manager.spec.ts#L325
AssertionError: expected "spy" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:325:28
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should use the JSON schema validator to validate the datafile:
lib/project_config/project_config_manager.spec.ts#L343
AssertionError: expected "spy" to be called 2 times, but got 1 times
❯ lib/project_config/project_config_manager.spec.ts:343:35
|
unit_tests (22)
The job was canceled because "_20" failed.
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() before datafileManger.onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L125
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:125:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() even if datafileManger.onRunning() rejects:
lib/project_config/project_config_manager.spec.ts#L138
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:138:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning() if datafileManager.onUpdate() is fired and should update config:
lib/project_config/project_config_manager.spec.ts#L194
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:194:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:192:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L206
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:206:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:201:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L224
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:224:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:221:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L255
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:255:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:250:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L273
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:273:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:270:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should update the config and call onUpdate handlers when datafileManager onUpdate is fired with valid datafile:
lib/project_config/project_config_manager.spec.ts#L298
AssertionError: expected { revision: '42', version: '2', …(26) } to deeply equal { revision: '99', version: '2', …(26) }
- Expected
+ Received
Object {
- "__datafileStr": "{\"revision\":\"99\",\"version\":\"2\",\"events\":[{\"key\":\"testEvent\",\"experimentIds\":[\"111127\"],\"id\":\"111095\"},{\"key\":\"Total Revenue\",\"experimentIds\":[\"111127\"],\"id\":\"111096\"},{\"key\":\"testEventWithAudiences\",\"experimentIds\":[\"122227\"],\"id\":\"111097\"},{\"key\":\"testEventWithoutExperiments\",\"experimentIds\":[],\"id\":\"111098\"},{\"key\":\"testEventWithExperimentNotRunning\",\"experimentIds\":[\"133337\"],\"id\":\"111099\"},{\"key\":\"testEventWithMultipleExperiments\",\"experimentIds\":[\"111127\",\"122227\",\"133337\"],\"id\":\"111100\"},{\"key\":\"testEventLaunched\",\"experimentIds\":[\"144447\"],\"id\":\"111101\"}],\"groups\":[{\"id\":\"666\",\"policy\":\"random\",\"trafficAllocation\":[{\"entityId\":\"442\",\"endOfRange\":3000},{\"entityId\":\"443\",\"endOfRange\":6000}],\"experiments\":[{\"id\":\"442\",\"key\":\"groupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"551\",\"key\":\"var1exp1\"},{\"id\":\"552\",\"key\":\"var2exp1\"}],\"trafficAllocation\":[{\"entityId\":\"551\",\"endOfRange\":5000},{\"entityId\":\"552\",\"endOfRange\":9000},{\"entityId\":\"\",\"endOfRange\":10000}],\"audienceIds\":[\"11154\"],\"forcedVariations\":{},\"layerId\":\"1\"},{\"id\":\"443\",\"key\":\"groupExperiment2\",\"status\":\"Running\",\"variations\":[{\"id\":\"661\",\"key\":\"var1exp2\"},{\"id\":\"662\",\"key\":\"var2exp2\"}],\"trafficAllocation\":[{\"entityId\":\"661\",\"endOfRange\":5000},{\"entityId\":\"662\",\"endOfRange\":10000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"2\"}]},{\"id\":\"667\",\"policy\":\"overlapping\",\"trafficAllocation\":[],\"experiments\":[{\"id\":\"444\",\"key\":\"overlappingGroupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"553\",\"key\":\"overlappingvar1\"},{\"id\":\"554\",\"key\":\"overlappingvar2\"}],\"trafficAllocation\":[{\"entityId\":\"553\",\"endOfRange\":1500},{\"entityId\":\"554\",\"endOfRange\":3000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"3\"}]}],\"experiments\":[{\"key\":\"testExperiment\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"control\",\"user2\":\"variation\"},\"audienceIds\":[],\"layerId\":\"4\",\"trafficAllocation\":[{\"entityId\":\"111128\",\"endOfRange\":4000},{\"entityId\":\"111129\",\"endOfRange\":9000}],\"id\":\"111127\",\"variations\":[{\"key\":\"control\",\"id\":\"111128\"},{\"key\":\"variation\",\"id\":\"111129\"}]},{\"key\":\"testExperimentWithAudiences\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"controlWithAudience\",\"user2\":\"variationWithAudience\"},\"audienceIds\":[\"11154\"],\"layerId\":\"5\",\"trafficAllocation\":[{\"entityId\":\"122228\",\"endOfRange\":4000},{\"entityId\":\"122229\",\"endOfRange\":10000}],\"id\":\"122227\",\"variations\":[{\"key\":\"controlWithAudience\",\"id\":\"122228\"},{\"key\":\"variationWithAudience\",\"id\":\"122229\"}]},{\"key\":\"testExperimentNotRunning\",\"status\":\"Not started\",\"forcedVariations\":{\"user1\":\"controlNotRunning\",\"user2\":\"variationNotRunning\"},\"audienceIds\":[],\"layerId\":\"6\",\"trafficAllocation\":[{\"entityId\":\"133338\",\"endOfRange\":4000},{\"entityId\":\"133339\",\"endOfRange\":10000}],\"id\":\"133337\",\"variations\":[{\"key\":\"controlNotRunning\",\"id\":\"133338\"},{\"key\":\"variationNotRunning\",\"id\":\"133339\"}]},{\"key\":\"testExperimentLaunched\",\"status\":\"Launched\",\"forcedVariations\":{},\"audienceIds\":[],\"layerId\":\"7\",\"trafficAllocation\":[{\"entityId\":\"144448\",\"endOfRange\":5000},{\"entityId\":\"144449\",\"endOfRange\":10000}],\"id\":\"144447\",\"variations\":[{\"key\":\"controlLaunched\",\"id\":\"144448\"},{\"key\":\"variationLaunched\",\"id\":\"144449\"}]}],\"accountId\":\"12001\",\"attributes\":[{\"key\":\"browser_type\",\"id\":\"111094\"},{\"id\":\"323434545\",\"key\":\"boolean_key\"},{\"id\":\"616727838\",\"key\":\"integer_key\"},{\"id\":\"808797686\",\"key\":\"double_key\
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should not call onUpdate handlers and should log error when datafileManager onUpdate is fired with invalid datafile:
lib/project_config/project_config_manager.spec.ts#L325
AssertionError: expected "spy" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:325:28
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should use the JSON schema validator to validate the datafile:
lib/project_config/project_config_manager.spec.ts#L343
AssertionError: expected "spy" to be called 2 times, but got 1 times
❯ lib/project_config/project_config_manager.spec.ts:343:35
|
unit_tests (18)
The job was canceled because "_20" failed.
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() before datafileManger.onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L125
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:125:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() even if datafileManger.onRunning() rejects:
lib/project_config/project_config_manager.spec.ts#L138
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:138:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning() if datafileManager.onUpdate() is fired and should update config:
lib/project_config/project_config_manager.spec.ts#L194
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:194:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:192:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L206
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:206:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:201:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L224
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:224:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:221:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L255
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:255:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:250:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L273
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:273:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:270:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should update the config and call onUpdate handlers when datafileManager onUpdate is fired with valid datafile:
lib/project_config/project_config_manager.spec.ts#L298
AssertionError: expected { revision: '42', version: '2', …(26) } to deeply equal { revision: '99', version: '2', …(26) }
- Expected
+ Received
Object {
- "__datafileStr": "{\"revision\":\"99\",\"version\":\"2\",\"events\":[{\"key\":\"testEvent\",\"experimentIds\":[\"111127\"],\"id\":\"111095\"},{\"key\":\"Total Revenue\",\"experimentIds\":[\"111127\"],\"id\":\"111096\"},{\"key\":\"testEventWithAudiences\",\"experimentIds\":[\"122227\"],\"id\":\"111097\"},{\"key\":\"testEventWithoutExperiments\",\"experimentIds\":[],\"id\":\"111098\"},{\"key\":\"testEventWithExperimentNotRunning\",\"experimentIds\":[\"133337\"],\"id\":\"111099\"},{\"key\":\"testEventWithMultipleExperiments\",\"experimentIds\":[\"111127\",\"122227\",\"133337\"],\"id\":\"111100\"},{\"key\":\"testEventLaunched\",\"experimentIds\":[\"144447\"],\"id\":\"111101\"}],\"groups\":[{\"id\":\"666\",\"policy\":\"random\",\"trafficAllocation\":[{\"entityId\":\"442\",\"endOfRange\":3000},{\"entityId\":\"443\",\"endOfRange\":6000}],\"experiments\":[{\"id\":\"442\",\"key\":\"groupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"551\",\"key\":\"var1exp1\"},{\"id\":\"552\",\"key\":\"var2exp1\"}],\"trafficAllocation\":[{\"entityId\":\"551\",\"endOfRange\":5000},{\"entityId\":\"552\",\"endOfRange\":9000},{\"entityId\":\"\",\"endOfRange\":10000}],\"audienceIds\":[\"11154\"],\"forcedVariations\":{},\"layerId\":\"1\"},{\"id\":\"443\",\"key\":\"groupExperiment2\",\"status\":\"Running\",\"variations\":[{\"id\":\"661\",\"key\":\"var1exp2\"},{\"id\":\"662\",\"key\":\"var2exp2\"}],\"trafficAllocation\":[{\"entityId\":\"661\",\"endOfRange\":5000},{\"entityId\":\"662\",\"endOfRange\":10000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"2\"}]},{\"id\":\"667\",\"policy\":\"overlapping\",\"trafficAllocation\":[],\"experiments\":[{\"id\":\"444\",\"key\":\"overlappingGroupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"553\",\"key\":\"overlappingvar1\"},{\"id\":\"554\",\"key\":\"overlappingvar2\"}],\"trafficAllocation\":[{\"entityId\":\"553\",\"endOfRange\":1500},{\"entityId\":\"554\",\"endOfRange\":3000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"3\"}]}],\"experiments\":[{\"key\":\"testExperiment\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"control\",\"user2\":\"variation\"},\"audienceIds\":[],\"layerId\":\"4\",\"trafficAllocation\":[{\"entityId\":\"111128\",\"endOfRange\":4000},{\"entityId\":\"111129\",\"endOfRange\":9000}],\"id\":\"111127\",\"variations\":[{\"key\":\"control\",\"id\":\"111128\"},{\"key\":\"variation\",\"id\":\"111129\"}]},{\"key\":\"testExperimentWithAudiences\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"controlWithAudience\",\"user2\":\"variationWithAudience\"},\"audienceIds\":[\"11154\"],\"layerId\":\"5\",\"trafficAllocation\":[{\"entityId\":\"122228\",\"endOfRange\":4000},{\"entityId\":\"122229\",\"endOfRange\":10000}],\"id\":\"122227\",\"variations\":[{\"key\":\"controlWithAudience\",\"id\":\"122228\"},{\"key\":\"variationWithAudience\",\"id\":\"122229\"}]},{\"key\":\"testExperimentNotRunning\",\"status\":\"Not started\",\"forcedVariations\":{\"user1\":\"controlNotRunning\",\"user2\":\"variationNotRunning\"},\"audienceIds\":[],\"layerId\":\"6\",\"trafficAllocation\":[{\"entityId\":\"133338\",\"endOfRange\":4000},{\"entityId\":\"133339\",\"endOfRange\":10000}],\"id\":\"133337\",\"variations\":[{\"key\":\"controlNotRunning\",\"id\":\"133338\"},{\"key\":\"variationNotRunning\",\"id\":\"133339\"}]},{\"key\":\"testExperimentLaunched\",\"status\":\"Launched\",\"forcedVariations\":{},\"audienceIds\":[],\"layerId\":\"7\",\"trafficAllocation\":[{\"entityId\":\"144448\",\"endOfRange\":5000},{\"entityId\":\"144449\",\"endOfRange\":10000}],\"id\":\"144447\",\"variations\":[{\"key\":\"controlLaunched\",\"id\":\"144448\"},{\"key\":\"variationLaunched\",\"id\":\"144449\"}]}],\"accountId\":\"12001\",\"attributes\":[{\"key\":\"browser_type\",\"id\":\"111094\"},{\"id\":\"323434545\",\"key\":\"boolean_key\"},{\"id\":\"616727838\",\"key\":\"integer_key\"},{\"id\":\"808797686\",\"key\":\"double_key\
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should not call onUpdate handlers and should log error when datafileManager onUpdate is fired with invalid datafile:
lib/project_config/project_config_manager.spec.ts#L325
AssertionError: expected "spy" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:325:28
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should use the JSON schema validator to validate the datafile:
lib/project_config/project_config_manager.spec.ts#L343
AssertionError: expected "spy" to be called 2 times, but got 1 times
❯ lib/project_config/project_config_manager.spec.ts:343:35
|
unit_tests (16)
The job was canceled because "_20" failed.
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() before datafileManger.onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L125
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:125:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is valid > should resolve onRunning() even if datafileManger.onRunning() rejects:
lib/project_config/project_config_manager.spec.ts#L138
AssertionError: expected "onRunning" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:138:45
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning() if datafileManager.onUpdate() is fired and should update config:
lib/project_config/project_config_manager.spec.ts#L194
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:194:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:192:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L206
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:206:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:201:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is also provided > when datafile is invalid > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L224
AssertionError: promise rejected "Error: CONFIG_VALIDATOR: This version of …" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:224:43
Caused by: Caused by: Error: CONFIG_VALIDATOR: This version of the JavaScript SDK does not support the given datafile version: undefined
❯ Object.validateDatafile lib/utils/config_validator/index.ts:80:13
❯ Module.tryCreatingProjectConfig lib/project_config/project_config.ts:811:42
❯ ProjectConfigManagerImpl.handleNewDatafile lib/project_config/project_config_manager.ts:146:22
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:94:12
❯ lib/project_config/project_config_manager.spec.ts:221:19
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should resolve onRunning(), update config and call onUpdate listeners if datafileManager.onUpdate() is fired:
lib/project_config/project_config_manager.spec.ts#L255
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:255:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:250:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > when datafile is not provided > should return the correct config from getConfig() after onRunning() resolves:
lib/project_config/project_config_manager.spec.ts#L273
AssertionError: promise rejected "Error: You must provide datafile in SSR" instead of resolving
❯ lib/project_config/project_config_manager.spec.ts:273:41
Caused by: Caused by: Error: You must provide datafile in SSR
❯ ProjectConfigManagerImpl.start lib/project_config/project_config_manager.ts:89:28
❯ lib/project_config/project_config_manager.spec.ts:270:17
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should update the config and call onUpdate handlers when datafileManager onUpdate is fired with valid datafile:
lib/project_config/project_config_manager.spec.ts#L298
AssertionError: expected { revision: '42', version: '2', …(26) } to deeply equal { revision: '99', version: '2', …(26) }
- Expected
+ Received
Object {
- "__datafileStr": "{\"revision\":\"99\",\"version\":\"2\",\"events\":[{\"key\":\"testEvent\",\"experimentIds\":[\"111127\"],\"id\":\"111095\"},{\"key\":\"Total Revenue\",\"experimentIds\":[\"111127\"],\"id\":\"111096\"},{\"key\":\"testEventWithAudiences\",\"experimentIds\":[\"122227\"],\"id\":\"111097\"},{\"key\":\"testEventWithoutExperiments\",\"experimentIds\":[],\"id\":\"111098\"},{\"key\":\"testEventWithExperimentNotRunning\",\"experimentIds\":[\"133337\"],\"id\":\"111099\"},{\"key\":\"testEventWithMultipleExperiments\",\"experimentIds\":[\"111127\",\"122227\",\"133337\"],\"id\":\"111100\"},{\"key\":\"testEventLaunched\",\"experimentIds\":[\"144447\"],\"id\":\"111101\"}],\"groups\":[{\"id\":\"666\",\"policy\":\"random\",\"trafficAllocation\":[{\"entityId\":\"442\",\"endOfRange\":3000},{\"entityId\":\"443\",\"endOfRange\":6000}],\"experiments\":[{\"id\":\"442\",\"key\":\"groupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"551\",\"key\":\"var1exp1\"},{\"id\":\"552\",\"key\":\"var2exp1\"}],\"trafficAllocation\":[{\"entityId\":\"551\",\"endOfRange\":5000},{\"entityId\":\"552\",\"endOfRange\":9000},{\"entityId\":\"\",\"endOfRange\":10000}],\"audienceIds\":[\"11154\"],\"forcedVariations\":{},\"layerId\":\"1\"},{\"id\":\"443\",\"key\":\"groupExperiment2\",\"status\":\"Running\",\"variations\":[{\"id\":\"661\",\"key\":\"var1exp2\"},{\"id\":\"662\",\"key\":\"var2exp2\"}],\"trafficAllocation\":[{\"entityId\":\"661\",\"endOfRange\":5000},{\"entityId\":\"662\",\"endOfRange\":10000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"2\"}]},{\"id\":\"667\",\"policy\":\"overlapping\",\"trafficAllocation\":[],\"experiments\":[{\"id\":\"444\",\"key\":\"overlappingGroupExperiment1\",\"status\":\"Running\",\"variations\":[{\"id\":\"553\",\"key\":\"overlappingvar1\"},{\"id\":\"554\",\"key\":\"overlappingvar2\"}],\"trafficAllocation\":[{\"entityId\":\"553\",\"endOfRange\":1500},{\"entityId\":\"554\",\"endOfRange\":3000}],\"audienceIds\":[],\"forcedVariations\":{},\"layerId\":\"3\"}]}],\"experiments\":[{\"key\":\"testExperiment\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"control\",\"user2\":\"variation\"},\"audienceIds\":[],\"layerId\":\"4\",\"trafficAllocation\":[{\"entityId\":\"111128\",\"endOfRange\":4000},{\"entityId\":\"111129\",\"endOfRange\":9000}],\"id\":\"111127\",\"variations\":[{\"key\":\"control\",\"id\":\"111128\"},{\"key\":\"variation\",\"id\":\"111129\"}]},{\"key\":\"testExperimentWithAudiences\",\"status\":\"Running\",\"forcedVariations\":{\"user1\":\"controlWithAudience\",\"user2\":\"variationWithAudience\"},\"audienceIds\":[\"11154\"],\"layerId\":\"5\",\"trafficAllocation\":[{\"entityId\":\"122228\",\"endOfRange\":4000},{\"entityId\":\"122229\",\"endOfRange\":10000}],\"id\":\"122227\",\"variations\":[{\"key\":\"controlWithAudience\",\"id\":\"122228\"},{\"key\":\"variationWithAudience\",\"id\":\"122229\"}]},{\"key\":\"testExperimentNotRunning\",\"status\":\"Not started\",\"forcedVariations\":{\"user1\":\"controlNotRunning\",\"user2\":\"variationNotRunning\"},\"audienceIds\":[],\"layerId\":\"6\",\"trafficAllocation\":[{\"entityId\":\"133338\",\"endOfRange\":4000},{\"entityId\":\"133339\",\"endOfRange\":10000}],\"id\":\"133337\",\"variations\":[{\"key\":\"controlNotRunning\",\"id\":\"133338\"},{\"key\":\"variationNotRunning\",\"id\":\"133339\"}]},{\"key\":\"testExperimentLaunched\",\"status\":\"Launched\",\"forcedVariations\":{},\"audienceIds\":[],\"layerId\":\"7\",\"trafficAllocation\":[{\"entityId\":\"144448\",\"endOfRange\":5000},{\"entityId\":\"144449\",\"endOfRange\":10000}],\"id\":\"144447\",\"variations\":[{\"key\":\"controlLaunched\",\"id\":\"144448\"},{\"key\":\"variationLaunched\",\"id\":\"144449\"}]}],\"accountId\":\"12001\",\"attributes\":[{\"key\":\"browser_type\",\"id\":\"111094\"},{\"id\":\"323434545\",\"key\":\"boolean_key\"},{\"id\":\"616727838\",\"key\":\"integer_key\"},{\"id\":\"808797686\",\"key\":\"double_key\
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should not call onUpdate handlers and should log error when datafileManager onUpdate is fired with invalid datafile:
lib/project_config/project_config_manager.spec.ts#L325
AssertionError: expected "spy" to be called at least once
❯ lib/project_config/project_config_manager.spec.ts:325:28
|
lib/project_config/project_config_manager.spec.ts > ProjectConfigManagerImpl > when constructed with a datafileManager > should use the JSON schema validator to validate the datafile:
lib/project_config/project_config_manager.spec.ts#L343
AssertionError: expected "spy" to be called 2 times, but got 1 times
❯ lib/project_config/project_config_manager.spec.ts:343:35
|
crossbrowser_and_umd_unit_tests
The job running on runner GitHub Actions 247 has exceeded the maximum execution time of 360 minutes.
|
crossbrowser_and_umd_unit_tests
The operation was canceled.
|
fullstack_production_suite / test
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
integration_tests / test
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
lint
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/setup-node@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
lint:
lib/core/audience_evaluator/index.ts#L112
Unexpected any. Specify a different type
|
lint:
lib/core/bucketer/index.ts#L237
Unexpected any. Specify a different type
|
lint:
lib/core/custom_attribute_condition_evaluator/index.ts#L244
Forbidden non-null assertion
|
lint:
lib/core/custom_attribute_condition_evaluator/index.ts#L265
Forbidden non-null assertion
|
lint:
lib/core/custom_attribute_condition_evaluator/index.ts#L286
Forbidden non-null assertion
|
lint:
lib/core/custom_attribute_condition_evaluator/index.ts#L307
Forbidden non-null assertion
|
lint:
lib/core/decision_service/index.ts#L487
Unexpected any. Specify a different type
|
lint:
lib/core/decision_service/index.ts#L535
Unexpected any. Specify a different type
|
lint:
lib/core/decision_service/index.ts#L975
Unexpected any. Specify a different type
|
lint:
lib/core/decision_service/index.ts#L1068
Unexpected any. Specify a different type
|
lint_markdown_files / lint
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
unit_tests (20)
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v3, actions/setup-node@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|