Skip to content

Missing Tag Assignment - #1

Merged
atheken merged 1 commit into
ActiveCampaign:masterfrom
tomcastleman:patch-1
Mar 3, 2015
Merged

atheken merged 1 commit into
ActiveCampaign:masterfrom
tomcastleman:patch-1

Conversation

@tomcastleman

Copy link
Copy Markdown
Contributor

No description provided.

@atheken

atheken commented Mar 3, 2015

Copy link
Copy Markdown
Contributor

Thanks for the fix!

@atheken atheken closed this Mar 3, 2015
@tomcastleman

Copy link
Copy Markdown
Contributor Author

That's fine but you didn't merge my PR!

@atheken

atheken commented Mar 3, 2015

Copy link
Copy Markdown
Contributor

I see that, one sec.

@atheken atheken reopened this Mar 3, 2015
atheken pushed a commit that referenced this pull request Mar 3, 2015
@atheken
atheken merged commit e3c70a6 into ActiveCampaign:master Mar 3, 2015
@tomcastleman
tomcastleman deleted the patch-1 branch March 3, 2015 18:53
atheken pushed a commit that referenced this pull request Jul 29, 2019
ewood-ac pushed a commit that referenced this pull request Oct 16, 2023
ewood-ac added a commit that referenced this pull request Aug 11, 2026
This is the half of "a pipeline that reports the truth" that was still missing.

The single phpunit testsuite was NAMED "unit" and contained all of tests/ -- 17 of
18 test classes hit the live Postmark API. With no tokens configured, every one of
those constructors threw "Argument #1 ($serverToken) must be of type string, null
given", so the suite reported 79 ERRORS. That is indistinguishable in CI from 79
real regressions, which is why php81 has been red on main since 2025-10 with
nothing but a description-string URL change behind it: a genuine break had nowhere
left to show up.

PostmarkClientBaseTest now skips with a message instead, in both setUp and
setUpBeforeClass -- both are needed, because a few subclasses build a client in
their own setUpBeforeClass, which runs first. TestingKeys gains hasAnyCredentials()
(BASE_URL excluded deliberately: it has a default and is present even with no
tokens, so counting it would report "configured" for an environment that cannot
call the API).

Two subclasses overrode setUpBeforeClass without chaining to parent, so they read
whatever an earlier test class happened to leave in the shared static $testKeys --
order-dependent, and latent even with credentials. They chain now.

The testsuites are split for real: `unit` is the credential-free file, `integration`
is the live-API set. composer test runs unit (the gate that can actually be green),
test:integration runs the rest. displayDetailsOnSkippedTests is on so a skipped run
prints why 17 times rather than just "No tests executed!".

CI: the per-version jobs run the credential-free suite, so a red php84 means the
code is broken on 8.4. Integration is its own unchained job -- chaining
php82->83->84->85 is what hid three versions' results behind one failure.

Verified both directions: no credentials -> exit 0, 5 passed, 17 classes skipped
with the reason stated; WRITE_TEST_SERVER_TOKEN set -> the skip lifts and the
integration tests really run (and fail against a fake token, as they should).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants