• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / events / 29952657091
67%

Build:
DEFAULT BRANCH: master
Ran 22 Jul 2026 08:03PM UTC
Jobs 1
Files 30
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Jul 2026 07:50PM UTC coverage: 67.092% (+2.2%) from 64.918%
29952657091

push

github

web-flow
fix: re-moderate approved events on content edits and sanitize description output (#986)

two related hardening changes for the event description path, which the
unity client renders as textmeshpro rich text (no html, no markdown), so a
`<link="target">` tag becomes a clickable link that reaches an unrestricted
`Application.OpenURL(target)` on the viewer's machine.

- reset approval on content edits: in `updateEvent`, when a content field
  (name, description, image, x, y, server) changes on an already-approved
  event, flip `approved` back to false, clear `approved_by`, and drop
  highlighted/trending so it re-enters moderation. skipped when the actor
  can approve (admin / isAdmin / ApproveAnyEvent, or the owner with
  ApproveOwnEvent) since their edit is itself a review. closes the
  edit-after-approval bypass.

- sanitize description output: `sanitizeEventDescription` keeps `<link>`
  tags whose target is an http(s) url — the legitimate use case — and
  strips links to any other scheme (file://, smb://, decentraland://,
  javascript:, data:, ...) plus every other markup tag, dropping both sides
  of a stripped link so no orphan tag remains. http(s) targets must also
  resolve (via the WHATWG URL parser, so obfuscated IPs can't slip past) to
  a public host: loopback / private / link-local (incl. the
  169.254.169.254 cloud-metadata endpoint) / internal / localhost links are
  stripped too. applied in `model.ts` `toPublic`. stripping rather than
  html-escaping keeps the text clean, since tmp does not decode entities.
  markdown and "5 < 10" survive.

covered by unit tests for the link-aware strip helper (safe/unsafe/mixed/
ambiguous cases), the toPublic sanitization, and the re-moderation gate
across the owner / editor / moderator permission matrix. also updates the
updateEvent integration test: after an owner edits a content field the
event is re-queued (approved -> false), so the persistence read-back is now
done as the authenticated owner rathe... (continued)

684 of 938 branches covered (72.92%)

Branch coverage included in aggregate %.

222 of 232 new or added lines in 3 files covered. (95.69%)

3785 of 5723 relevant lines covered (66.14%)

6.88 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
73.02
4.45% src/entities/Event/utils.ts
Jobs
ID Job ID Ran Files Coverage
1 29952657091.1 22 Jul 2026 08:03PM UTC 60
66.68
GitHub Action Run
Source Files on build 29952657091
  • Tree
  • List 30
  • Changed 18
  • Source Changed 3
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29952657091
  • 24e4c361 on github
  • Prev Build on master (#28134371287)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc