Ghost/ghost/admin
Kevin Ansfield f25cc00236 Fixed product card throwing "Cannot read properties of undefined (reading 'url')" errors
closes https://github.com/TryGhost/Team/issues/2295

Problem:
- `<GhUploader>` is not yet converted to an Octane component so it's arguments are not read-only
- when a file is selected it sets it's `files` property which in turn updates the tracked `files` property that was passed in, and then again updates it to an empty file list when the input field is cleared
- that tracked property was never cleared once the product image was uploaded resulting in a "re-upload" attempt with an empty file list every time the product card was put back into edit mode

Fix:
- added a guard in `<GhUploader>` so it doesn't try to upload an empty file list if one is passed in as an attribute
- added a reset of the tracked `files` property in the product card once the image upload is complete
2022-11-22 13:13:42 +00:00
..
app Fixed product card throwing "Cannot read properties of undefined (reading 'url')" errors 2022-11-22 13:13:42 +00:00
config Dropped ember-cli-moment-shim dependency 2022-09-24 13:28:23 +02:00
lib Fixed product card throwing "Cannot read properties of undefined (reading 'url')" errors 2022-11-22 13:13:42 +00:00
mirage Add tests to tabs and events pagination (#15757) 2022-11-07 16:32:06 +04:00
public/assets Removed duplicate icons for events (#15854) 2022-11-21 14:50:39 +04:00
tests Cleaned up GA Flags (#15762) 2022-11-18 16:09:25 +07: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 Updated Eslint ECMAScript compatibility to 2022 2022-08-09 15:51:40 +02:00
.gitignore Added test documentation to README 2022-06-02 10:38:51 +02:00
.lint-todo Cleaned up GA Flags (#15762) 2022-11-18 16:09:25 +07:00
.lint-todorc.js Reset linter warnings with longer decay times 2022-05-09 12:57:19 +01:00
.template-lintrc.js Refactored staff user modals 2022-10-03 21:15:34 +01:00
.watchmanconfig deps: ember-cli@1.13.13 2015-11-30 11:21:39 -06:00
ember-cli-build.js Added filtered events tables to the analytics page (#15669) 2022-10-21 12:31:25 +04:00
ember-cli-update.json Updated core files to match ember-cli new output 2020-08-03 09:24:58 +01:00
package.json Update dependency testem to v3.10.0 2022-11-22 17:38:30 +07:00
README.md Tidied up Admin README 2022-08-03 21:16:04 +02: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-2022 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.