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

peczenyj / lua-gdpr-iab-tcfv2 / 25670557487 / 1
91%
devel: 91%

Build:
DEFAULT BRANCH: devel
Ran 11 May 2026 12:38PM UTC
Files 11
Run time 0s
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

11 May 2026 12:37PM UTC coverage: 89.421% (+1.2%) from 88.192%
25670557487.1

push

github

web-flow
fix(validator): port Perl-aligned behavior (Tier A) (#19)

Six related changes that collectively bring the Validator's behavior in
line with the Perl reference implementation while keeping the public
API surface unchanged (still (boolean, string|table) returns -- the
structured Result/Failure types from Perl are explicitly out of scope
for Tier A).

* Error wording rewritten to match Perl message-for-message:
  - "vendor X not allowed for purpose Y (consent)" replaces the split
    "missing consent for vendor X" / "missing consent for purpose Y"
  - "vendor X not allowed for purpose Y (legitimate interest)" replaces
    the equivalent split for the LI path
  - "legitimate interest not permitted for purpose N" replaces the
    P1-specific "purpose 1 does not allow legitimate interest"
  - "vendor N not disclosed" replaces "vendor N not in disclosed
    vendors segment"
  - "missing disclosed vendors segment" replaces "missing mandatory
    disclosed vendors segment for policy v2.3+"
  - "TC string policy version X is below required minimum Y" replaces
    "policy version X is less than required Y"
  - "publisher restriction: purpose N {not allowed|requires consent|
    requires legitimate interest} (vendor V)" replaces the
    less-specific Lua-only restriction messages

  These are byte-equivalent to Perl's reason strings (see
  perl/lib/GDPR/IAB/TCFv2/Validator.pm), unblocking reason-level parity
  in a future test pass.

* LI carve-out applied. Per the TCF spec (and Perl's
  _li_carve_out_applies), Purpose 1 never allows legitimate interest
  AND Purposes 3-6 lose LI starting in TCF v2.2 (policy version 4).
  Lua previously only handled Purpose 1; now P3-6 in v2.2+ also fail
  with "legitimate interest not permitted for purpose N".

* Constructor coherence checks added. Validator.new now error()s when:
  - a purpose appears in both consent_purpose_ids and
    legitimate_interest_purpose_ids
  - a flexible_purpose_ids entry doesn't appear in either b... (continued)

541 of 605 relevant lines covered (89.42%)

11678.43 hits per line

Source Files on job 25670557487.1
  • Tree
  • List 11
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 25670557487
  • f9b3f4f3 on github
  • Prev Job for on devel (#25669983764.1)
  • Next Job for on devel (#25672369211.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc