Add progressive web app companion for cross-platform access
Vite + TypeScript PWA that mirrors the Android app's core features: - Pre-processed shelter data (build-time UTM33N→WGS84 conversion) - Leaflet map with shelter markers, user location, and offline tiles - Canvas compass arrow (ported from DirectionArrowView.kt) - IndexedDB shelter cache with 7-day staleness check - Service worker with CacheFirst tiles and precached app shell - i18n for en, nb, nn (ported from Android strings.xml) - iOS/Android compass handling with low-pass filter - Respects user map interaction (no auto-snap on pan/zoom) - Build revision cache-breaker for reliable SW updates Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
46365b713b
commit
e8428de775
12051 changed files with 1799735 additions and 0 deletions
45
pwa/node_modules/jake/test/integration/concurrent.js
generated
vendored
Normal file
45
pwa/node_modules/jake/test/integration/concurrent.js
generated
vendored
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
let assert = require('assert');
|
||||
let exec = require('child_process').execSync;
|
||||
|
||||
const PROJECT_DIR = process.env.PROJECT_DIR;
|
||||
const JAKE_CMD = `${PROJECT_DIR}/bin/cli.js`;
|
||||
|
||||
suite('concurrent', function () {
|
||||
|
||||
this.timeout(7000);
|
||||
|
||||
test(' simple concurrent prerequisites 1', function () {
|
||||
let out = exec(`${JAKE_CMD} -q concurrent:simple1`).toString().trim();
|
||||
assert.equal('Started A\nStarted B\nFinished B\nFinished A', out);
|
||||
});
|
||||
|
||||
test(' simple concurrent prerequisites 2', function () {
|
||||
let out = exec(`${JAKE_CMD} -q concurrent:simple2`).toString().trim();
|
||||
assert.equal('Started C\nStarted D\nFinished C\nFinished D', out);
|
||||
});
|
||||
|
||||
test(' sequential concurrent prerequisites', function () {
|
||||
let out = exec(`${JAKE_CMD} -q concurrent:seqconcurrent`).toString().trim();
|
||||
assert.equal('Started A\nStarted B\nFinished B\nFinished A\nStarted C\nStarted D\nFinished C\nFinished D', out);
|
||||
});
|
||||
|
||||
test(' concurrent concurrent prerequisites', function () {
|
||||
let out = exec(`${JAKE_CMD} -q concurrent:concurrentconcurrent`).toString().trim();
|
||||
assert.equal('Started A\nStarted B\nStarted C\nStarted D\nFinished B\nFinished C\nFinished A\nFinished D', out);
|
||||
});
|
||||
|
||||
test(' concurrent prerequisites with subdependency', function () {
|
||||
let out = exec(`${JAKE_CMD} -q concurrent:subdep`).toString().trim();
|
||||
assert.equal('Started A\nFinished A\nStarted Ba\nFinished Ba', out);
|
||||
});
|
||||
|
||||
test(' failing in concurrent prerequisites', function () {
|
||||
try {
|
||||
exec(`${JAKE_CMD} -q concurrent:Cfail`);
|
||||
}
|
||||
catch(err) {
|
||||
assert(err.message.indexOf('Command failed') > -1);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue