Skip to content

Commit 4dc76a9

Browse files
author
web3blind
committed
Keep quest checkpoints advancing
1 parent bfa5341 commit 4dc76a9

6 files changed

Lines changed: 17 additions & 8 deletions

File tree

app/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@
191191
<script src="js/ui/screens/map.js?v=20260621h"></script>
192192
<script src="js/ui/screens/marketplace.js?v=20260621k"></script>
193193
<script src="js/ui/screens/crafting.js?v=20260621j"></script>
194-
<script src="js/ui/screens/quests.js?v=20260621m"></script>
194+
<script src="js/ui/screens/quests.js?v=20260621n"></script>
195195
<script src="js/ui/screens/world-boss.js"></script>
196196
<script src="js/ui/screens/settings.js"></script>
197197
<script src="js/ui/screens/help.js"></script>

app/js/ui/screens/quests.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,11 @@ var QuestsScreen = (function() {
328328
}
329329

330330
var user = VizAccount.getCurrentUser();
331-
var finalBlockNum = (result && result.block_num) ||
331+
var currentHead = StateEngine.getState().headBlock || 0;
332+
var finalBlockNum =
333+
(result && result.block_num) ||
332334
(result && result.action && result.action.block_num) ||
333-
(StateEngine.getState().headBlock || 0);
335+
(currentHead + 1);
334336
var event = null;
335337
if (kind === 'accept') {
336338
event = StateEngine.processQuestAcceptResult(user, questId, isDaily, dailyBlock, finalBlockNum);

app/sw.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Viz Magic — Service Worker
2-
var CACHE_NAME = 'viz-magic-v26';
2+
var CACHE_NAME = 'viz-magic-v27';
33
var ASSETS = [
44
'/',
55
'/index.html',

tests/core-screen-accessibility-smoke.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ async function run() {
9090
var badLogs = logs.filter(function(l) { return l.type === 'error' || l.type === 'pageerror'; });
9191
assert.deepStrictEqual(failed, [], 'all core screens should render with named controls and no raw keys');
9292
assert.deepStrictEqual(badLogs, [], 'core screen smoke should not emit console errors/page errors');
93-
assert.ok(result.cachesKeys.indexOf('viz-magic-v26') !== -1, 'service worker cache should use latest cache name');
93+
assert.ok(result.cachesKeys.indexOf('viz-magic-v27') !== -1, 'service worker cache should use latest cache name');
9494
assert.ok(result.scripts.some(function(src) { return src.indexOf('helpers.js?v=20260621l') !== -1; }), 'helpers script should be cache-busted');
9595
assert.ok(result.scripts.some(function(src) { return src.indexOf('territory.js?v=20260621l') !== -1; }), 'territory script should be cache-busted');
9696
assert.ok(result.scripts.some(function(src) { return src.indexOf('state-engine.js?v=20260621m') !== -1; }), 'state engine script should be cache-busted');

tests/player-bug-regressions.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ test('high-traffic UI narration and inventory stat labels are translated', funct
327327

328328
test('service worker updates quickly and keeps navigations network-first', function () {
329329
const swJs = read('app/sw.js');
330-
assert.ok(/viz-magic-v26/.test(swJs), 'service worker cache version should be bumped');
330+
assert.ok(/viz-magic-v27/.test(swJs), 'service worker cache version should be bumped');
331331
assert.ok(/self\.skipWaiting\(\)/.test(swJs), 'service worker should activate new cache without waiting for all tabs to close');
332332
assert.ok(/self\.clients\.claim\(\)/.test(swJs), 'service worker should claim clients after activation');
333333
assert.ok(/event\.request\.mode === 'navigate'[\s\S]*fetch\(event\.request\)/.test(swJs), 'navigation requests should prefer network to avoid stale cached index');

tests/quest-browser-transaction-smoke.test.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ async function run() {
5151
var calls = [];
5252
VizBroadcast.questAction = function(type, data, callback) {
5353
calls.push({ type: type, data: JSON.parse(JSON.stringify(data || {})) });
54-
callback(null, { block_num: 12010 });
54+
if (calls.length === 1) {
55+
callback(null, {});
56+
} else {
57+
callback(null, { block_num: 12010 + calls.length });
58+
}
5559
};
5660

5761
App.navigateTo('quests');
@@ -63,6 +67,7 @@ async function run() {
6367
var questId = acceptBtn.getAttribute('data-quest-id');
6468
acceptBtn.click();
6569
await new Promise(function(resolve) { setTimeout(resolve, 120); });
70+
var headAfterAccept = StateEngine.getState().headBlock;
6671
var activeAfterAccept = StateEngine.getState().quests['quest-smoke'].active.map(function(q) { return q.id; });
6772
document.querySelector('[data-tab="active"]').click();
6873
await new Promise(function(resolve) { setTimeout(resolve, 80); });
@@ -84,6 +89,7 @@ async function run() {
8489
return {
8590
calls: calls,
8691
questId: questId,
92+
headAfterAccept: headAfterAccept,
8793
activeAfterAccept: activeAfterAccept,
8894
activeAfterAbandon: activeAfterAbandon,
8995
activeAfterDaily: activeAfterDaily,
@@ -94,13 +100,14 @@ async function run() {
94100
assert.ifError(result.error);
95101
assert.strictEqual(result.calls[0].type, 'quest.accept', 'available quest accept should broadcast VM action');
96102
assert.strictEqual(result.calls[0].data.quest_id, result.questId, 'quest id should be sent on chain');
103+
assert.strictEqual(result.headAfterAccept, 12001, 'quest accept without returned block should still advance checkpoint head');
97104
assert.ok(result.activeAfterAccept.indexOf(result.questId) !== -1, 'accepted quest should update StateEngine after broadcast');
98105
assert.strictEqual(result.calls[1].type, 'quest.abandon', 'abandon should broadcast VM action');
99106
assert.deepStrictEqual(result.activeAfterAbandon, [], 'abandoned quest should update StateEngine after broadcast');
100107
assert.strictEqual(result.calls[2].type, 'quest.accept', 'daily quest accept should broadcast VM action');
101108
assert.strictEqual(result.calls[2].data.daily, true, 'daily quest should include deterministic daily marker');
102109
assert.ok(result.activeAfterDaily.length === 1 && /^daily_/.test(result.activeAfterDaily[0]), 'daily quest should be accepted through StateEngine');
103-
assert.strictEqual(result.headBlock, 12010, 'local checkpoint head should advance to broadcast block');
110+
assert.strictEqual(result.headBlock, 12013, 'local checkpoint head should advance to latest broadcast block');
104111
console.log('PASS quest browser transaction smoke');
105112
} finally {
106113
if (browser) await browser.close();

0 commit comments

Comments
 (0)