Ghost/ghost/admin
Kevin Ansfield b447a26832
Added custom excerpt to post revisions (#20323)
closes https://linear.app/tryghost/issue/MOM-170

When the subtitle field is included in the editor it creates a disconnect with post revisions if the underlying custom excerpt data is not included so we'd like to both preview and restore the subtitle when the in-editor subtitle field is enabled.

- added `post_revisions.custom_excerpt` column to schema
- added migration to add `post_revisions.custom_excerpt` to existing databases
- added migration to populate `post_revisions.custom_excerpt` with the current `post.custom_excerpt` value from the associated record
  - ensures no data is inadvertently lost when restoring an old version
- using current data matches what would have happened previously where custom_excerpt was never overwritten when restoring an old version
- updated post revisions handling to accept the `custom_excerpt` field
- updated Admin's revision preview and restoration to display and set the `custom_excerpt` field
2024-06-05 14:47:33 +01:00
..
app Added custom excerpt to post revisions (#20323) 2024-06-05 14:47:33 +01:00
config Updated Koenig-Lexical bundling 2023-10-04 12:50:21 +02:00
lib Added ActivityPub playground (#20081) 2024-04-25 16:44:29 +08:00
mirage Added Admin acceptance test for post revision restoration 2024-06-04 20:16:19 +01:00
public/assets What's new popup (#20112) 2024-05-21 12:36:28 +02:00
tests Added custom excerpt to post revisions (#20323) 2024-06-05 14:47:33 +01:00
.editorconfig deps: ember-cli@2.8.0 2016-10-07 17:32:30 +01:00
.ember-cli Co-located component template files 2020-05-18 13:14:08 +01:00
.eslintignore Updated Ember dependencies to 3.24 (#2221) 2022-01-22 11:24:26 +00:00
.eslintrc.js Added eslint rule for file naming convention 2023-05-09 12:34:34 -04:00
.lint-todo Added Admin acceptance test for post revision restoration 2024-06-04 20:16:19 +01:00
.lint-todorc.js Reset linter warnings with longer decay times 2022-05-09 12:57:19 +01:00
.template-lintrc.js Update dependency ember-template-lint to v5.3.0 (#16062) 2023-01-04 09:39:32 +00:00
.watchmanconfig deps: ember-cli@1.13.13 2015-11-30 11:21:39 -06:00
ember-cli-build.js Enabled persistent filesystem caching for Ember builds 2023-12-13 16:40:18 +01:00
ember-cli-update.json Updated core files to match ember-cli new output 2020-08-03 09:24:58 +01:00
jsconfig.json 🐛 Fixed beta editor HTML cards auto-closing tags when rendering 2023-06-19 14:39:51 +02:00
package.json 🐛 Fixed mailto: not being recognised in internal-linking search (#20331) 2024-06-05 14:30:24 +01:00
README.md 2023 2023-08-03 20:40:44 +01:00
testem.js Only show failed tests in Admin CI output 2022-08-31 15:53:27 +01:00

Ghost-Admin

This is the home of the Ember.js-based Admin app that ships with Ghost.

Running tests

Build and run tests once:

TZ=UTC yarn test

Note the TZ=UTC environment variable which is currently required to get tests working if your system timezone doesn't match UTC.

If you are serving the admin app (e.g., when running yarn serve, or when running yarn dev in the main Ghost project), you can also run the tests in your browser by going to http://localhost:4200/tests.

This has the additional benefit that you can use await this.pauseTest() in your tests to temporarily pause tests (best to also add this.timeout(0); to avoid timeouts). This allows you to inspect the DOM in your browser to debug tests. You can resume tests by running resumeTest() in your browser console.

More information

Writing tests

When writing tests and not using the http://localhost:4200/tests browser tests, it can be easier to have a separate watching build that builds the project for the test environment (this drastically reduces the time you have to wait when running tests):

yarn build --environment=test -w -o="dist-test"

After that, you can easily run tests locally:

Run all tests:

TZ=UTC yarn test 1 --path="dist-test"

To have a cleaner output:

TZ=UTC yarn test 1 --reporter dot  --path="dist-test"

This shows a dot (.) for every successful test, and F for every failed test. At the end, it will only show the output of the failed tests.

To run a specific test file:

TZ=UTC yarn test 1 --reporter dot  --path="dist-test" -mp=tests/acceptance/settings/newsletters-test.js

Hint: you can easily copy the path of a test in VSCode by right clicking on the test file and choosing Copy Relative Path.

To have a full list of the available options, run

ember exam --help

Copyright & License

Copyright (c) 2013-2023 Ghost Foundation - Released under the MIT license. Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our trademark policy for info on acceptable usage.