forked from snxraven/peardock
56 lines
2.0 KiB
JavaScript
56 lines
2.0 KiB
JavaScript
import test from 'brittle'
|
|
import { createRequire } from 'module'
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
const otaConfig = require('../lib/ota-config.cjs')
|
|
|
|
const pkg = {
|
|
version: '2.0.1',
|
|
productName: 'peardock',
|
|
upgrade: 'pear://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
|
|
upgradeClient: 'pear://bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
|
|
upgradeServer: 'pear://cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc',
|
|
}
|
|
|
|
test('resolveUpgradeLink prefers kind-specific fields', (t) => {
|
|
t.is(otaConfig.resolveUpgradeLink('client', pkg), pkg.upgradeClient)
|
|
t.is(otaConfig.resolveUpgradeLink('server', pkg), pkg.upgradeServer)
|
|
})
|
|
|
|
test('buildUpdaterOptions client enables with pear:// link', (t) => {
|
|
const cfg = otaConfig.buildUpdaterOptions('client', {
|
|
pkg,
|
|
dir: '/tmp/peardock-ota-test',
|
|
app: '/tmp/peardock-client',
|
|
})
|
|
t.ok(cfg.enabled)
|
|
t.is(cfg.upgrade, pkg.upgradeClient)
|
|
t.is(cfg.version, '2.0.1')
|
|
t.ok(cfg.name)
|
|
t.is(cfg.dir, '/tmp/peardock-ota-test')
|
|
})
|
|
|
|
test('buildUpdaterOptions disabled without pear link', (t) => {
|
|
const cfg = otaConfig.buildUpdaterOptions('client', {
|
|
pkg: { version: '1.0.0' },
|
|
dir: '/tmp/x',
|
|
})
|
|
t.absent(cfg.enabled)
|
|
})
|
|
|
|
test('artifactName client varies by platform', (t) => {
|
|
t.is(otaConfig.artifactName('client', { platform: 'darwin' }), 'peardock.app')
|
|
t.is(otaConfig.artifactName('client', { platform: 'win32' }), 'peardock-client.exe')
|
|
t.is(otaConfig.artifactName('client', { platform: 'linux' }), 'peardock-client')
|
|
t.is(otaConfig.artifactName('server', { platform: 'linux' }), 'peardock-server')
|
|
})
|
|
|
|
test('ota-config module is loadable from electron-relative path', (t) => {
|
|
const root = path.join(path.dirname(fileURLToPath(import.meta.url)), '..')
|
|
const mod = require(path.join(root, 'lib', 'ota-config.cjs'))
|
|
t.is(typeof mod.buildUpdaterOptions, 'function')
|
|
t.is(typeof mod.artifactName, 'function')
|
|
})
|