feat: automate extension updates across Windows hosts
This commit is contained in:
1 parent
500034bb63
commit
f08aac0c9e
36 files changed
+2996
-71
No files matched your search
@@ -1318,7 +1318,7 @@ test('passenger explicit server success is terminal without a post-save row requ
|
||||
assert.doesNotMatch(passengerBranch, /passengerRequery|verifyLifecycleOperation/);
|
||||
assert.doesNotMatch(background, /attemptAutomaticPassengerReconciliation/);
|
||||
assert.match(background, /名单已取得 ERP 明确成功响应,按业务规则确认录入成功/);
|
||||
assert.match(platformApp, /REQUIRED_EXTENSION_VERSION = '0\.5\.166'/);
|
||||
assert.match(platformApp, /REQUIRED_EXTENSION_VERSION = '0\.5\.167'/);
|
||||
});
|
||||
|
||||
test('uncertain lifecycle writes can only converge through a read-only plugin requery', async () => {
|
||||
@@ -1525,6 +1525,25 @@ test('lifecycle execution keeps the MV3 worker alive until the durable task sett
|
||||
assert.match(background, /arrangement_resource_candidate_data_missing/);
|
||||
});
|
||||
|
||||
test('extension update reload requires a fully idle durable execution state', async () => {
|
||||
const [background, bridge, platform] = await Promise.all([
|
||||
readFile(new URL('../chrome-extension/ltjt-order-assistant/background.js', import.meta.url), 'utf8'),
|
||||
readFile(new URL('../chrome-extension/ltjt-order-assistant/business-bridge.js', import.meta.url), 'utf8'),
|
||||
readFile(new URL('../LianSyn-platform/app.js', import.meta.url), 'utf8')
|
||||
]);
|
||||
assert.match(background, /async function extensionUpdateSafetyStatus\(\)/);
|
||||
assert.match(background, /\['running', 'write_started', 'submitted', 'uncertain'\]/);
|
||||
assert.match(background, /saved_unverified\|execution_uncertain\|reconciliation_pending/);
|
||||
assert.match(background, /message\?\.type === 'LTJT_EXTENSION_UPDATE_STATUS'/);
|
||||
assert.match(background, /message\?\.type === 'LTJT_APPLY_EXTENSION_UPDATE'/);
|
||||
assert.match(background, /if \(comparison >= 0\)/);
|
||||
assert.match(background, /chrome\.runtime\.reload\(\)/);
|
||||
assert.match(bridge, /message\.type === 'APPLY_EXTENSION_UPDATE'/);
|
||||
assert.match(bridge, /type: 'LTJT_APPLY_EXTENSION_UPDATE'/);
|
||||
assert.match(platform, /extension_update_safe: result\.extension_update\?\.safe === true/);
|
||||
assert.match(platform, /extensionUpdateBlocksExecution/);
|
||||
});
|
||||
|
||||
test('ERP browser injection is host-permission gated and fail-closed with diagnostics', async () => {
|
||||
const [manifestText, background, platform] = await Promise.all([
|
||||
readFile(new URL('../chrome-extension/ltjt-order-assistant/manifest.json', import.meta.url), 'utf8'),
|
||||
@@ -1948,7 +1967,7 @@ test('delete guard distinguishes independent, shared child, and shared parent ro
|
||||
for (const operation of operations) assert.equal(plans.validateOperation(operation).ok, true, plans.validateOperation(operation).blockers.join('; '));
|
||||
|
||||
const mapping = JSON.parse(await readFile(new URL('../mappings/lifecycle.mapping.json', import.meta.url), 'utf8'));
|
||||
assert.equal(mapping.current_extension_version, '0.5.166');
|
||||
assert.equal(mapping.current_extension_version, '0.5.167');
|
||||
assert.equal(
|
||||
mapping.updates.order_update_independent.field_mapped_pending_live_validation['pax.child_no_bed'],
|
||||
'ertrenshu'
|
||||
@@ -2331,10 +2350,10 @@ test('schema and browser adapters contain the v2 safety fields and no confirm ov
|
||||
assert.match(inpage, /`ys_danweiid\$\{index\}`, resolvedCustomerId/);
|
||||
assert.doesNotMatch(inpage, /product_customer_source_region|sourceRegionCheck|source_reference/);
|
||||
assert.doesNotMatch(teamBatchInpage, /product_customer_source_region|sourceRegionCheck/);
|
||||
assert.equal(extensionManifest.version, '0.5.166');
|
||||
assert.match(inpage, /version: '0\.5\.166'/);
|
||||
assert.match(teamBatchInpage, /version: '0\.5\.166'/);
|
||||
assert.match(platformApp, /REQUIRED_EXTENSION_VERSION = '0\.5\.166'/);
|
||||
assert.equal(extensionManifest.version, '0.5.167');
|
||||
assert.match(inpage, /version: '0\.5\.167'/);
|
||||
assert.match(teamBatchInpage, /version: '0\.5\.167'/);
|
||||
assert.match(platformApp, /REQUIRED_EXTENSION_VERSION = '0\.5\.167'/);
|
||||
assert.match(inpage, /function strictIsoDate\(value\)/);
|
||||
assert.match(inpage, /const startDate = strictIsoDate\(controlCanonicalValue\(form, 'riqi0'\)\)/);
|
||||
assert.match(inpage, /const endDate = strictIsoDate\(controlCanonicalValue\(form, 'riqis0'\)\)/);
|
||||
|
||||
Reference in new issue
Block a user