Compare commits

..

No commits in common. "306d6e3056cdaad7dff866e41760d9278c5dc4de" and "553a01217a19aaf74310b391773d01a83f11c596" have entirely different histories.

2 changed files with 3 additions and 33 deletions

View File

@ -117,17 +117,16 @@ function createTodayTimer({ storage, getLogin, now = () => Date.now(), onChange
} }
if (!ledger[identity] || ledger[identity].elapsed_ms !== Math.floor(Number(elapsedMs))) return false; if (!ledger[identity] || ledger[identity].elapsed_ms !== Math.floor(Number(elapsedMs))) return false;
const state = read(); const state = read();
const keepBreak = validBreak(state)?.identity === identity;
state.active_identity = identity; state.active_identity = identity;
state.entries = ledger; state.entries = ledger;
state.entries[identity].started_at = running && !keepBreak ? now() : null; state.entries[identity].started_at = running ? now() : null;
state.entries[identity].running = Boolean(running) && !keepBreak; state.entries[identity].running = Boolean(running);
state.away_at = null; state.away_at = null;
state.pending_interruption = null; state.pending_interruption = null;
state.attention_interruption = null; state.attention_interruption = null;
state.search_interruption = null; state.search_interruption = null;
state.detour_interruption = null; state.detour_interruption = null;
if (!keepBreak) state.timed_break = null; if(running || validBreak(state)?.identity !== identity) state.timed_break=null;
return write(state); return write(state);
}, },
activate(identity) { activate(identity) {

View File

@ -122,35 +122,6 @@ process.stdout.write(JSON.stringify({adopted,snapshot:timer.snapshot(),pending:t
} }
def test_reload_running_checkpoint_cannot_restart_item_during_valid_local_break():
script = TIMER.read_text() + r"""
const values = new Map();
const storage = {getItem:key=>values.get(key)||null,setItem:(key,value)=>values.set(key,value)};
const timer = createTodayTimer({storage,getLogin:()=> 'timmy',now:()=>100000});
timer.activate('issue:r:42:');
timer.startBreak(5);
const adopted = timer.adopt('issue:r:42:', 12000, true, [
{identity:'issue:r:42:',elapsed_ms:12000},
]);
process.stdout.write(JSON.stringify({adopted,snapshot:timer.snapshot(),pending:timer.breakSnapshot()}));
"""
assert run_node(script) == {
"adopted": True,
"snapshot": {
"identity": "issue:r:42:",
"elapsed_ms": 12000,
"running": False,
"break_deadline_at": 400_000,
},
"pending": {
"identity": "issue:r:42:",
"deadline_at": 400_000,
"expired": False,
},
}
def test_break_expiry_never_restarts_time_and_resume_is_explicit_and_idempotent(): def test_break_expiry_never_restarts_time_and_resume_is_explicit_and_idempotent():
script = TIMER.read_text() + r""" script = TIMER.read_text() + r"""
const values = new Map(); const values = new Map();