Ghost/ghost/admin
Kevin Ansfield b48cc49e5a
🐛 Fixed broken "< Posts" and "Back to editor" links in beta editor (infinite save loop) (#18042)
refs https://github.com/TryGhost/Product/issues/3843

If you used relative URLs in the beta editor, when it came to leaving the editor you would get stuck due to an infinite save loop occurring in the background requiring a refresh to get back to a working state.

- when saving relative URLs the server will convert them to absolute for consistency and to ensure URLs work in other situations such as emails, RSS, 3rd party editors, etc
- although we get different data back from the server we don't overwrite the content in the editor with it as that would cause loss of changes since the save as well as loss of the cursor position
- when leaving the editor we compare content from the last save revision with the current editor content to see if we need to save a new revision but if the server data has been modified with relative->absolute URLs then we'd enter an infinite loop because the content would never match
- relative->absolute URLs should be the only thing to ever be modified in the underlying data when saving so we can work around the issue by replacing each instance of the site's URL before comparing revision data to current data
2023-09-08 14:24:05 +00:00
..
app 🐛 Fixed broken "< Posts" and "Back to editor" links in beta editor (infinite save loop) (#18042) 2023-09-08 14:24:05 +00:00
config Configured Admin to use CDN URLs for lazy-loaded assets 2023-07-17 15:40:42 +02:00
lib Update dependency ember-cli-babel to v8 2023-08-31 17:46:50 +02:00
mirage Added logic for currency and suggested amount for Tips & Donations (#17599) 2023-08-04 18:17:35 +00:00
public/assets Added hidden indicator to title and feature image (#17177) 2023-07-03 11:26:33 +02:00
tests Added automatic conversion of old content when opening in beta editor (#17876) 2023-08-30 16:54:03 +01:00
.editorconfig
.ember-cli
.eslintignore
.eslintrc.js Added eslint rule for file naming convention 2023-05-09 12:34:34 -04:00
.lint-todo Added custom theme setting visibility (#17763) 2023-08-21 11:26:51 +01:00
.lint-todorc.js
.template-lintrc.js Update dependency ember-template-lint to v5.3.0 (#16062) 2023-01-04 09:39:32 +00:00
.watchmanconfig
ember-cli-build.js Configured auto-imported assets to load from supplied URL 2023-07-14 16:29:59 +02:00
ember-cli-update.json
jsconfig.json 🐛 Fixed beta editor HTML cards auto-closing tags when rendering 2023-06-19 14:39:51 +02:00
package.json Merged v5.61.3 into main 2023-09-06 10:55:49 +00: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.