Ghost/ghost/core
Chris Raible c90e033fcf
Added an email rendering test for all Koenig cards (#19059)
refs TryGhost/Product#4125

This PR adds two new integration tests to ensure all our Koenig cards
are rendered properly after going through the EmailRenderer. Although we
have thorough tests for the cards themselves in the Koenig repo, the
EmailRenderer does post-processing on the rendered HTML, such as
inlining CSS, which can adversely impact the rendered output of our
cards in email clients (usually Outlook).

Since email newsletters are a core feature of Ghost, these bugs are
typically fairly urgent, and since it is email, they are also quite
difficult to troubleshoot and fix. These two tests are intended to
prevent bugs of this sort, which in the past have been created by
seemingly harmless changes like bumping dependencies that are used in
the EmailRenderer.

The idea is to create a 'Golden Post' which has at least 1 of every card
from Koenig, run that post through the EmailRenderer, and take a
snapshot of the rendered HTML. In the future, if we make any changes to
the EmailRenderer or the Koenig cards themselves, this will trigger us
to carefully consider the changes, and it provides an 'expected' output
to compare our changes against.

Additionally, the second test simply checks that all cards from
`kg-default-nodes` are included in the 'Golden Post'. This protects
against any new cards that we will add in the future — as soon as we add
them to Koenig and bump `kg-default-nodes` in Ghost, this test will
fail, prompting us to add the new card to the Golden Post and update the
snapshots.

We should also run the 'Golden Post' through a test in Litmus, which
allows us to visually inspect the rendered email across many different
email clients. Ideally we would create a process to review the output of
the 'Golden Post' in Litmus whenever we update the snapshot as well.
2023-12-12 16:05:04 -08:00
..
content 🎨 Updated Source to v1.1.2 2023-12-01 16:04:16 +00:00
core Added quantities and seed option to the data generator (#19330) 2023-12-12 12:50:55 +01:00
test Added an email rendering test for all Koenig cards (#19059) 2023-12-12 16:05:04 -08:00
.c8rc.e2e.json Split CI database tests into separate types 2023-05-22 19:34:17 +02:00
.c8rc.json Added email address alignment protections (#19094) 2023-11-23 10:25:30 +01:00
.eslintignore Updated .eslintignore list for core 2022-10-10 15:12:52 +07:00
.eslintrc.js Updated linting and migration comment to improve practices 2023-06-26 15:29:37 +02:00
.npmignore Moved monobundle into monorepo 2023-11-13 13:30:38 +01:00
config.development.json Converted Ghost repo into a monorepo 2022-07-20 16:41:05 +02:00
ghost.js Added browser-based testing framework 2022-11-22 14:12:34 +00:00
index.js Configured New Relic to load earlier in the process 2023-08-30 11:47:50 +02:00
jsconfig.json Deleted reference to core/admin 2022-08-03 16:28:41 +02:00
loggingrc.js Added version information to log lines 2023-01-20 13:18:44 +01:00
MigratorConfig.js Added eslint rule for file naming convention 2023-05-09 12:34:34 -04:00
monobundle.js Moved monobundle into monorepo 2023-11-13 13:30:38 +01:00
newrelic.js Configured New Relic integration within Ghost core 2023-08-29 09:30:25 +01:00
package.json Update dependency ws to v8.15.1 2023-12-12 21:10:38 +00:00
playwright.config.js Parallelise browser tests 2023-10-13 11:42:39 +00:00