mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-28 21:33:24 +03:00
c90e033fcf
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. |
||
---|---|---|
.. | ||
content | ||
core | ||
test | ||
.c8rc.e2e.json | ||
.c8rc.json | ||
.eslintignore | ||
.eslintrc.js | ||
.npmignore | ||
config.development.json | ||
ghost.js | ||
index.js | ||
jsconfig.json | ||
loggingrc.js | ||
MigratorConfig.js | ||
monobundle.js | ||
newrelic.js | ||
package.json | ||
playwright.config.js |