mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
feat(desktop): prefer the bundled renderer, own update prompts (#3341)
This commit is contained in:
1 parent
7a5b9a0ded
commit
5072488f1e
33 files changed
+2197
-113
No files matched your search
@@ -25,14 +25,14 @@ function deferred() {
|
||||
|
||||
describe('DesktopUpdateGate', () => {
|
||||
test('nothing is available and nothing starts before the bootstrap arms the gate', async () => {
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: false});
|
||||
assert.deepEqual(await checkDesktopUpdateNow(), {available: false});
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: false, updating: false});
|
||||
assert.deepEqual(await checkDesktopUpdateNow(), {available: false, updating: false});
|
||||
assert.equal(startDesktopUpdate(), false);
|
||||
});
|
||||
|
||||
test('a check publishes the update and one click runs it exactly once', async () => {
|
||||
const states = [];
|
||||
const stop = observeDesktopUpdateState((state) => states.push(state.available));
|
||||
const stop = observeDesktopUpdateState((state) => states.push(state));
|
||||
const running = deferred();
|
||||
let starts = 0;
|
||||
armDesktopUpdate({
|
||||
@@ -44,18 +44,30 @@ describe('DesktopUpdateGate', () => {
|
||||
},
|
||||
});
|
||||
|
||||
assert.deepEqual(await checkDesktopUpdateNow(), {available: true});
|
||||
assert.deepEqual(await checkDesktopUpdateNow(), {available: true, updating: false});
|
||||
assert.equal(startDesktopUpdate(), true);
|
||||
assert.equal(startDesktopUpdate(), false, 'a second click while the update runs is a no-op');
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: false}, 'the affordance hides the moment it is clicked');
|
||||
assert.deepEqual(await checkDesktopUpdateNow(), {available: false}, 'a poll during the update changes nothing');
|
||||
assert.deepEqual(
|
||||
getDesktopUpdateState(),
|
||||
{available: false, updating: true},
|
||||
'the affordance hides the moment it is clicked',
|
||||
);
|
||||
assert.deepEqual(
|
||||
await checkDesktopUpdateNow(),
|
||||
{available: false, updating: true},
|
||||
'a poll during the update changes nothing',
|
||||
);
|
||||
|
||||
running.resolve();
|
||||
await new Promise((resolve) => setImmediate(resolve));
|
||||
|
||||
assert.equal(starts, 1);
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: false});
|
||||
assert.deepEqual(states, [true, false]);
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: false, updating: false});
|
||||
assert.deepEqual(states, [
|
||||
{available: true, updating: false},
|
||||
{available: false, updating: true},
|
||||
{available: false, updating: false},
|
||||
]);
|
||||
stop();
|
||||
});
|
||||
|
||||
@@ -71,7 +83,7 @@ describe('DesktopUpdateGate', () => {
|
||||
assert.equal(startDesktopUpdate(), true);
|
||||
await new Promise((resolve) => setImmediate(resolve));
|
||||
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: true});
|
||||
assert.deepEqual(getDesktopUpdateState(), {available: true, updating: false});
|
||||
assert.equal(startDesktopUpdate(), true);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user