Commit graph

32 commits

Author SHA1 Message Date
3b04ebceb3 ci(web): run the server suite before building the image
The build job now needs: test, so an image cannot be published with the suite in
red — which is the whole point of this phase. Both jobs live in the same file
because needs: only links jobs within one workflow.

settings-ci.json is committed and contains no secrets: settings-development.json
is gitignored, so CI had nothing to pass to --settings. The one test that cannot
work without a secret is the node-red iron fixture, sealed with the deployment's
own ironPassword; it now reports itself as skipped instead of failing on an hmac
mismatch, and still runs locally against settings-development.json.

Measured locally: 22s and a ~2.0 GB peak for the whole `meteor test` run (its own
mongod included), hence --memory=3g. The meteor-tool download is not cached yet;
the note in the workflow says what that would take.
2026-08-01 18:02:31 +02:00
e61efc681c test(publications): cover the geo publications the map calls on every pan
activefiresmyloc (bounding box, published fields, out-of-range coordinates),
activefiresunionmyloc (geoIntersects, including a shape larger than the viewport)
and mysubscriptions (own subscriptions only, nothing for anonymous visitors).
2026-08-01 18:02:20 +02:00
755afccf90 test(calcUnionAsync): pin the worker plumbing and the event-loop guarantee
Runs the real worker against the real @turf modules, because what broke twice was
never the geometry: the worker script and the turf packages sit in sibling
directories of the bundle that a bare require() cannot reach (3249362), and the
first fix doubled the programs/server prefix so nothing resolved (570cb49).

The last test is the reason the worker exists at all: timers keep firing while a
120-circle union computes. Revert fbb746f and it fails.
2026-08-01 18:02:20 +02:00
6e448bda55 test(subsUnion): cover the queue, the fast path and the size guard
The cases are the incidents: a worker failure must leave the stored union alone
instead of overwriting it with "null" (50ca9cc), an incremental merge must refuse
to run on state that is not exactly one behind, recomputes must coalesce while
adds must not be dropped, and legacy telegram subscriptions (no radius, no
location) must be skipped without throwing.

Also the 16 MiB case the FIXME asked for: a 20 MB union comes back under the cap,
still parseable, with the degradation recorded.
2026-08-01 18:02:20 +02:00
6b6f02d92d quality: web debt batch (tests runner, FireContainer, rate-limit, maps, i18n)
Independent-of-prod quality debt from PENDIENTE.md §2:

- test: migrate broken Jest -> meteortesting:mocha. Tests rewritten to chai +
  Meteor 3 async APIs, moved to test/server/ (server-only). test/server/
  00-setup.test.js re-runs the collection2/accounts init that `meteor test`
  skips (no server/main.js). New comments method + mediaAnalyzers coverage.
  Dropped rest.test.js (removed meteor/http; covered by smoke/). 36 passing.
- fix: scope FireContainer read by the URL _id on the archive route instead of
  a selector-less FiresCollection.findOne() (imports/ui/pages/Fires/Fires.js).
- feat: rate-limit abusable publications via rateLimitSubscriptions (fireFrom*
  and comments.forReference 5/1000ms; geo subs 10/1000ms).
- perf: append loading=async to the Google Maps loader URL (Gkeys.js).
- deps: meteor-accounts-t9n 2.0 -> 2.6 (no gl build -> keep gl->es fallback,
  documented); add 3 missing gl/common.json keys (0 missing now).
- deps: drop jest/babel/enzyme, add chai.
2026-07-21 22:59:06 +02:00
vjrj
7b5f17fbe8 Added activeFiresUnion (wip) 2018-10-28 20:27:38 +01:00
vjrj
47e9c18607 More work in REST api deletion 2018-06-19 10:49:53 +02:00
vjrj
5642b106d4 Improved rest api calls 2018-06-19 00:18:18 +02:00
vjrj
5b3d86e6a5 Changed rest params in subs 2018-06-18 11:58:04 +02:00
vjrj
b8ab47e867 Improvements in REST API 2018-06-15 06:39:09 +02:00
vjrj
714cc8610a Improved test lauch for ci 2018-06-14 21:24:29 +02:00
vjrj
a48da85ebe More REST calls 2018-06-14 20:35:41 +02:00
vjrj
1de7e4a7b3 Proper error codes 2018-06-14 19:48:48 +02:00
vjrj
eebbdda064 Rest api updated 2018-06-14 17:55:38 +02:00
vjrj
d551dea425 Added done() to test 2018-06-14 17:54:51 +02:00
vjrj
37a24d288a Check url in encoded fire 2018-05-10 09:52:54 +02:00
vjrj
b35ac6d461 Seeder added to fire enconde tests 2018-05-03 12:08:31 +02:00
vjrj
3eb2e4ff28 Fix tweet tests 2018-05-02 19:04:00 +02:00
vjrj
1360f742f3 Fix test for CI 2018-04-12 20:54:34 +02:00
vjrj
1eb6e45dfe Added EU fire stats tweets 2018-03-22 17:42:13 +01:00
vjrj
0c56bcf7e0 Added cron tweets for active fires in 'es' and 'pt' 2018-03-17 20:06:00 +01:00
vjrj
a8a1c43f2c Fire comments email notifications 2018-03-05 09:59:55 +01:00
vjrj
f5d43dba76 Removed duplicated code 2018-02-26 20:30:46 +01:00
vjrj
1cf2a6883a Fix some file fallback retrieval for some langs. Added tests 2018-02-26 20:11:41 +01:00
vjrj
52e7e71a5c Added multiple tests of fires enc/dec 2018-01-29 21:40:06 +01:00
vjrj
379e72a9e7 Site settings and fires fromNow Reactive 2018-01-29 11:30:17 +01:00
vjrj
58c54e5b94 Telegram auth (wip) 2018-01-26 12:49:53 +01:00
vjrj
5fe60d20d3 Test added 2018-01-26 00:12:45 +01:00
vjrj
952431d296 Pages (terms/tos/privacy), comments improvements, etc 2018-01-21 20:53:21 +01:00
vjrj
c79f8b5f8b Added fire - telegram links, for more info 2018-01-18 10:55:58 +01:00
vjrj
40aedbfdfb Added Fires page, collection and fire comments 2018-01-17 18:23:32 +01:00
vjrj
3bf21c8caf Added web and email notifications. Tests. Fire page 2018-01-16 16:19:29 +01:00