Ghost/ghost/admin
Daniel Lockyer ad209f3a7d
Improved yarn dev development tooling
- this commit switches our `yarn dev` workflow from heavily relying on
  Grunt, to using `nodemon` and `concurrently`
- we're doing this to reduce reliance on Grunt, but also to fix several
  nits with the way `yarn dev` works in the monorepo
- we now use `nodemon` to run the Ghost backend, and it should
  auto-refresh whenever you change a file in any of the packages (except
  `admin`)
- we use `concurrently` to simultaneously run `ghost` and `admin` at
  the same time. it seems to handle process cleanup well and has nice
  colored prefixes to help with differentiating between log output
- this commit ends up removing a handful of Grunt dependencies and
  reduces the functionality stored in the Gruntfile
- on the whole, it should keep existing functionality but there may be
  some small underlying changes to get used to
2022-08-05 15:54:37 +02:00
..
app Fixed cancel button on tier modal with free trials 2022-08-05 18:34:28 +05:30
config Updated ember-auto-import@1 -> ember-auto-import@2 (#2252) 2022-08-02 13:43:28 +01:00
lib Improved yarn dev development tooling 2022-08-05 15:54:37 +02:00
mirage Added newsletter slug generation to mirage 2022-06-02 13:19:52 +02:00
public/assets Added in a new comments icon for the activity feed 2022-07-22 10:08:00 +01:00
tests Added Ghost Explore UI 2022-08-01 11:11:47 +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 support for building/rendering react components 2022-07-19 12:48:53 +01:00
.gitignore Added test documentation to README 2022-06-02 10:38:51 +02:00
.lint-todo Update dependency ember-template-lint to v4.10.1 2022-08-03 11:40:12 +01:00
.lint-todorc.js Reset linter warnings with longer decay times 2022-05-09 12:57:19 +01:00
.template-lintrc.js Added disabled newsletter dropdown to scheduled state of publish menu (#2357) 2022-04-27 10:49:55 +01:00
.watchmanconfig deps: ember-cli@1.13.13 2015-11-30 11:21:39 -06:00
ember-cli-build.js Updated ember-auto-import@1 -> ember-auto-import@2 (#2252) 2022-08-02 13:43:28 +01:00
ember-cli-update.json Updated core files to match ember-cli new output 2020-08-03 09:24:58 +01:00
package.json Updated @tryghost/* packages 2022-08-05 13:30:50 +02:00
README.md Tidied up Admin README 2022-08-03 21:16:04 +02:00
testem.js Increased testem's browser_start_timeout to 120s 2020-07-20 12:20:26 +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.