Enable isolated Capsule Local automatic update testing
This commit is contained in:
@ -37,6 +37,28 @@ test('local installer has separate identity, no feed, and cannot wipe app data',
|
||||
assert.equal(config.nsis.deleteAppDataOnUninstall, false)
|
||||
})
|
||||
|
||||
test('unsigned updates require explicit isolated test mode and retain the Local install identity', () => {
|
||||
const testEnv = { CAPSULE_TEST_UPDATE_URL: 'https://ttp.joeykimsey.com/capsule/testfeed/' }
|
||||
assert.throws(() => createBuildConfig({ testUpdates: true, env: {} }), /HTTPS/)
|
||||
assert.throws(() => createBuildConfig({ release: true, testUpdates: true, env: testEnv }), /combined/)
|
||||
assert.throws(() => createBuildConfig({ bootstrap: true }), /Bootstrap/)
|
||||
assert.throws(() => createBuildConfig({ testUpdates: true, env: { CAPSULE_TEST_UPDATE_URL: feed } }), /separate/)
|
||||
const local = createBuildConfig({ env: {} })
|
||||
const testBuild = createBuildConfig({ testUpdates: true, env: testEnv })
|
||||
assert.equal(testBuild.appId, local.appId)
|
||||
assert.equal(testBuild.extraMetadata.name, local.extraMetadata.name)
|
||||
assert.equal(testBuild.extraMetadata.capsuleUpdates.enabled, true)
|
||||
assert.equal(testBuild.extraMetadata.capsuleUpdates.testing, true)
|
||||
assert.equal(testBuild.win.verifyUpdateCodeSignature, false)
|
||||
assert.equal(testBuild.forceCodeSigning, false)
|
||||
assert.equal(testBuild.publish[0].url, testEnv.CAPSULE_TEST_UPDATE_URL)
|
||||
assert.equal(testBuild.nsis.deleteAppDataOnUninstall, false)
|
||||
const bootstrap = createBuildConfig({ testUpdates: true, bootstrap: true, env: testEnv })
|
||||
assert.equal(bootstrap.extraMetadata.version, '0.1.0')
|
||||
assert.notEqual(bootstrap.directories.output, testBuild.directories.output)
|
||||
assert.equal(createBuildConfig({ release: true, env }).win.verifyUpdateCodeSignature, true)
|
||||
})
|
||||
|
||||
test('release verification detects tampering and publishes metadata last', async (t) => {
|
||||
const directory = await mkdtemp(join(tmpdir(), 'capsule-release-test-'))
|
||||
t.after(() => rm(directory, { recursive: true, force: true }))
|
||||
|
||||
Reference in New Issue
Block a user