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

peczenyj / GDPR-IAB-TCFv2 / 25465081412
96%
main: 96%

Build:
Build:
LAST BUILD BRANCH: devel
DEFAULT BRANCH: main
Ran 06 May 2026 10:44PM UTC
Jobs 1
Files 13
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

06 May 2026 10:37PM UTC coverage: 94.191% (-1.4%) from 95.63%
25465081412

push

github

web-flow
Phase 2: The Validator Interface (rebased + reviewed) (#54)

* Phase 2: The Validator Interface

* Refactor Validator to reduce complexity (fix perlcritic)

* Phase 2: review fixups for the Validator interface

Three must-fix changes plus expanded test coverage that came out of
the deep review on PR #35:

  * Encapsulation: _check_disclosed used to reach into the parser's
    private hash (\$tc->{disclosed_vendors_data}).  Replace with the
    public predicate \$tc->has_vendor_disclosure (added in Phase 1).

  * Test regex bug (t/06-validator.t):
        qr/purpose 1.* | .*purpose 7/
    has an unescaped pipe inside qr//, so it parsed as alternation
    rather than a literal " | " separator.  The test passed even
    when the \$\\-aware joining didn't work, leaving the headline
    feature unverified.  Fix:
        qr/purpose 1.*\\Q | \\E.*purpose 7/

  * POD: previously zero documentation.  Phase 1 set the bar; add
    full POD for both modules with SYNOPSIS, DESCRIPTION, every
    constructor key, both methods, the boolean/stringification
    overloads, and the \$\\-aware separator behaviour.

Test coverage added for previously-uncovered paths:

  * Pre-parsed GDPR::IAB::TCFv2 object as input
  * Missing vendor_id (croak) plus override fill-in
  * legitimate_interest_purpose_ids (pass + spec-forbidden P1)
  * flexible_purpose_ids scalar form
  * flexible_purpose_ids hashref form (both default_is_li values)
  * strict-mode override (warn path via Test::Warn + croak path)
  * validate_all accumulating reasons across all three rule families

MANIFEST: add lib/GDPR/IAB/TCFv2/Validator.pm,
lib/GDPR/IAB/TCFv2/Validator/Result.pm, and t/06-validator.t
(missing from the original Phase 2 commits).

t/06-validator.t now has 11 subtests (was 4); 8287 tests pass
overall (was 8280).  perlcritic + perltidy clean.

* refactor(validator): derive flexible-purpose default basis from membership

flexible_purpose_ids is now a flat ArrayRef[Int].  The default
legal basi... (continued)

174 of 200 new or added lines in 3 files covered. (87.0%)

908 of 964 relevant lines covered (94.19%)

9367.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
26
83.06
-6.1% bin/iabtcfv2
Jobs
ID Job ID Ran Files Coverage
1 25465081412.1 06 May 2026 10:44PM UTC 13
94.19
GitHub Action Run
Source Files on build 25465081412
  • Tree
  • List 13
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 5ace2099 on github
  • Prev Build on devel (#25464220004)
  • Next Build on devel (#25466121077)
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