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

saygoweb / anorm / 25251759671
97%

Build:
DEFAULT BRANCH: master
Ran 02 May 2026 12:21PM UTC
Jobs 1
Files 35
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

02 May 2026 12:20PM UTC coverage: 84.558% (+0.2%) from 84.349%
25251759671

push

github

web-flow
Read/write lifecycle hooks for change detection (#48)

* Add CLAUDE.md and Serena project config/memories

Onboards AI agents (Claude Code, Serena) with project layout, conventions,
commands, and done-criteria so future sessions can ramp up without
re-deriving context. Memories cover the in-flight 2026-05 change-detection
work as well as general project conventions.

* feat(lifecycle): add ChangeListenerInterface and listener registry

Bootstraps the new Anorm\Lifecycle namespace with the listener interface,
re-entrancy exception type, and static set/get on DataMapper. No call sites
yet — purely additive.

* fix(lifecycle): reset insideListener flag and drop unused import

Address code-review feedback on Task 1: setChangeListener(null) now
also resets the re-entrancy guard so tearDown is exhaustive ahead of
Task 6 landing the actual write-path guard. Drop the pre-staged
ChangeListenerInterface use from the test file — Task 6 will reintroduce
it when first needed.

* test(lifecycle): add fixture schema, model, and value-object classes

LifecycleModel exposes id, name, email, dtu, payload — enough to cover
infrastructureProperties exclusion (dtu) and partial-load (email)
scenarios. Three value-object classes cover the three object-equality
paths: LifecycleMoney (equals), LifecycleSameMoney (isSame),
LifecycleBagMoney (loose ==).

* style(lifecycle): import TestEnvironment instead of inline FQCN

Match the convention of every other test file in the suite and the
already-imported LifecycleModel / RecordingListener in this same file.
No behavioural change.

* feat(lifecycle): add Model::$_lastSnapshot property

Underscore-prefixed so it stays out of the column map. Defaults to null.
Will be populated by DataMapper::readArray when a listener is registered.

Also fixes DataMapper::autoMap to properly skip underscore-prefixed
properties per the existing convention used in write() and readArray().

* refactor(autoMap): drop dead unset and noisy comment

The un... (continued)

61 of 65 new or added lines in 1 file covered. (93.85%)

2 existing lines in 1 file now uncovered.

1692 of 2001 relevant lines covered (84.56%)

17.05 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
96.91
-3.09% src/DataMapper.php

Coverage Regressions

Lines Coverage ∆ File
2
96.91
-3.09% src/DataMapper.php
Jobs
ID Job ID Ran Files Coverage
1 25251759671.1 02 May 2026 12:20PM UTC 35
84.56
GitHub Action Run
Source Files on build 25251759671
  • Tree
  • List 35
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 93d3c854 on github
  • Prev Build on master (#19342574673)
  • Next Build on master (#25294204668)
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