31 lines
1.4 KiB
Python
31 lines
1.4 KiB
Python
|
|
from app.modules.bottom_bar.backend import service
|
||
|
|
|
||
|
|
|
||
|
|
def test_active_timer_deducts_previous_pauses(monkeypatch):
|
||
|
|
def query(sql,params):
|
||
|
|
assert 'COALESCE(t.pause_total_seconds, 0)' in sql
|
||
|
|
assert 'GREATEST' in sql
|
||
|
|
return {'id':3,'sag_id':186,'elapsed':240}
|
||
|
|
monkeypatch.setattr(service,'execute_query_single',query)
|
||
|
|
result=service.get_active_timer(12)
|
||
|
|
assert result['elapsed']==240
|
||
|
|
assert result['elapsed_hhmmss']=='00:04:00'
|
||
|
|
|
||
|
|
|
||
|
|
def test_paused_timer_freezes_at_pause_time_and_deducts_prior_pauses(monkeypatch):
|
||
|
|
monkeypatch.setattr(service,'get_active_timer',lambda user:{'active':False})
|
||
|
|
monkeypatch.setattr(service,'execute_query_single',lambda *args:{'count':1})
|
||
|
|
def query(sql,params):
|
||
|
|
assert 'COALESCE(t.paused_at, NOW())' in sql
|
||
|
|
return [{'id':3,'sag_id':186,'elapsed_seconds':300,'pause_total_seconds':60}]
|
||
|
|
monkeypatch.setattr(service,'execute_query',query)
|
||
|
|
result=service.get_own_timer_snapshot(12)
|
||
|
|
assert result['paused'][0]['elapsed_hhmmss']=='00:04:00'
|
||
|
|
|
||
|
|
|
||
|
|
def test_pause_display_never_goes_negative(monkeypatch):
|
||
|
|
monkeypatch.setattr(service,'get_active_timer',lambda user:{'active':False})
|
||
|
|
monkeypatch.setattr(service,'execute_query_single',lambda *args:{'count':1})
|
||
|
|
monkeypatch.setattr(service,'execute_query',lambda *args:[{'id':3,'elapsed_seconds':10,'pause_total_seconds':60}])
|
||
|
|
assert service.get_own_timer_snapshot(12)['paused'][0]['elapsed_hhmmss']=='00:00:00'
|