Commit Graph

3581 Commits

Author SHA1 Message Date
Daniel Lockyer
1a0362f3db Added demo E2E browser test
refs https://github.com/TryGhost/Toolbox/issues/207

- we want to start writing some E2E tests that involve automated
  pointing and clicking around the frontend of Ghost to test that
  members of Ghost sites can still do what we expect
- we've decided to look in to Playwright for this - it looks __really__
  nice
- this is a VERY basic first test - it'll check for a 200 on the
  homepage of whatever we provide as the TEST_URL env variable, or
  default to a (manually-run) Ghost instance on port 2368
- also adds a `yarn test:browser` command to run the tests using the
  Playwright CLI, and a sample GitHub Action workflow which we can
  manually run with a site URL
- there's a lot more to add here in terms of test framework but this
  gets us started
2022-02-17 12:16:58 +01:00
Renovate Bot
9b4d61ef2e
Update dependency express to v4.17.3 2022-02-17 04:02:30 +00:00
Naz
f0bda014ab Fixed misconfigured SnapshotManager in e2e tests
refs https://github.com/TryGhost/Toolbox/issues/210

- After updating to the newest `@tryghost/express-test`, it's dependency `@tryghost/jest-snapshot` was missmatched with the one used in Ghost itself. This caused multiple instances of SnapshotManager class in the system, which is meant to be a singleton!
- The issue was causing following error to appear: "IncorrectUsageError: Unable to run snapshot tests, current test was not configured"
2022-02-17 11:01:15 +07:00
Naz
d79dab94f5 Changed test-framework assertion execution order
refs https://github.com/TryGhost/Toolbox/issues/210

- Having assertions executed in the declaration order using superagent has lead to many frustrating developer experiences. For example when status code assertion fails there was usually no additional context to investigate the failure further. In this situation having a "response body" assertion executed usually would give many more clues on the actual problem at hand.
- The order of the assertions has been changed from the order in which they were declared to the following one based on assertion type:
1. `exect`
2. `expectHeader`
3. `expectStatus`

- For more on this topic check the documentation: cfd6e88fe2/packages/express-test (assertion-execution-order)
2022-02-17 11:01:15 +07:00
Daniel Lockyer
08eaed152b Added yarn test:ci command
refs https://github.com/TryGhost/Toolbox/issues/208

- we currently run all test commands separately in CI and this can make
  it harder to replicate any issues we see in CI because we have to
  manually go and copy the order of the tests
- it's also nicer if there's just one command that runs so we can make
  changes globally to CI
- this commit adds a test:ci yarn command which will run the tests in
  order of speed/importance, with the -b AKA fail-fast flag so we
  don't have to wait for all tests to run before finding out about
  issues
- this also cleans up running unit tests in the DB matrix
2022-02-16 19:22:20 +01:00
Renovate Bot
6537ed1485
Update dependency @sentry/node to v6.17.9 2022-02-16 15:26:45 +00:00
Matt Hanley
4b47d376ec Merged v4.36.1 into main
v4.36.1
2022-02-16 15:25:03 +00:00
Daniel Lockyer
ffd66d5c57 v4.36.1 2022-02-16 15:23:42 +00:00
Kevin Ansfield
9debf27e62 🐛 Fixed "Invalid mobiledoc structure" errors the could occur when saving posts with header cards
refs https://github.com/TryGhost/Team/issues/1377

- bumped all packages that have a dependency on `@tryghost/kg-utils` to fix a bug in the `slugify()` utility that was throwing errors when the header or subheader was left blank in a header card
2022-02-16 15:16:10 +00:00
Kevin Ansfield
de644a25d4 🐛 Fixed "Invalid mobiledoc structure" errors the could occur when saving posts with header cards
refs https://github.com/TryGhost/Team/issues/1377

- bumped all packages that have a dependency on `@tryghost/kg-utils` to fix a bug in the `slugify()` utility that was throwing errors when the header or subheader was left blank in a header card
2022-02-16 14:44:33 +00:00
Renovate Bot
4ebbe90f17
Update dependency body-parser to v1.19.2 2022-02-16 05:19:22 +00:00
Renovate Bot
2b241b4e6a
Update dependency @sentry/node to v6.17.8 2022-02-15 16:28:10 +00:00
Daniel Lockyer
b2e04cce4b Bumped all Members packages
- we've just fixed up the use of `@tryghost/errors` and bumped some
  dependencies in all of our packages in Members
- this commit bumps all of those packages in Ghost so we can stay
  up-to-date
2022-02-15 13:58:55 +01:00
Naz
09bf5804ad Fixed e2e-framework to correctly compare headers
refs https://github.com/TryGhost/Toolbox/issues/209
refs https://github.com/TryGhost/Toolbox/issues/210

- Fixed request header processing by the e2e-framework where it failed to lowercase incoming header keys. This bug made it harder to test code paths which involve header checking, e.g. following code: `req.headers['stripe-signature']` would not get a correct value if the header was specified as Stripe-Signature
- Additional output to the status code assertions was added - this allows to have more context when an invalid response code comes back in a test.
2022-02-15 18:38:45 +07:00
Fabien "egg" O'Carroll
f88b6bd02f 🐛 Fixed Stripe checkout session urls being invalid
refs https://github.com/TryGhost/Team/issues/1322

Since the Members service is no longer started when Stripe is
reconfigured the url config used for checkout sessions was not updated.

This moves all of the default Stripe urls into the Stripe service, where
they will be updated as/when Stripe is connected/disconnected.
2022-02-15 12:50:07 +02:00
Renovate Bot
be5677cbd1
Update dependency eslint to v8.9.0 2022-02-14 02:20:41 +00:00
Renovate Bot
07ffe8fd94
Update dependency @sentry/node to v6.17.7 2022-02-11 18:01:11 +00:00
Daniel Lockyer
cc466edd8f v4.36.0 2022-02-11 16:00:27 +00:00
Renovate Bot
3681e1d86d Update dependency @tryghost/metrics to v1.0.5 2022-02-10 08:01:29 +01:00
Hannah Wolfe
c885dac30a
Removed chai + misc auth test cleanup
refs: https://github.com/TryGhost/Toolbox/issues/158

- We only use chai in a handful of places now, and it seems totally unnecessary
- Use assert instead
- Made other minor changes with a view to this being a reference aka "perfect" test suite
2022-02-09 21:14:31 +00:00
Fabien "egg" O'Carroll
21c43f3b10 🐛 Fixed 500 errors when cancelling subscriptions
no-issue

If Stripe subscriptions have manually been modified to contain more than
one price, then cancellation would fail, as Ghost/Members relies on
subscriptions only containing one price. This adds some handling so that
we do not error when cancelling.
2022-02-09 11:37:49 +02:00
Fabien 'egg' O'Carroll
88786f768b
Added validation for Tier prices
refs https://github.com/TryGhost/Team/issues/1319
refs https://github.com/TryGhost/Team/issues/521

This updates the members-api to explicitly validate Tier prices rather
than deferring to Stripe and using whichever errors they throw.
2022-02-09 11:04:58 +02:00
Renovate Bot
b1c2b923ce
Update dependency @sentry/node to v6.17.6 2022-02-08 20:37:28 +00:00
Hannah Wolfe
069c344495
Switched new e2e-framework to use our own snapshot lib (#14137)
refs TryGhost/Toolbox#158
refs TryGhost/Toolbox#129 (comment)

We now have @tryghost/jest-snapshot - a suite of utilities for using snapshots with mocha, should, etc
The @tryghost/express-test lib also uses it to provide chained snapshot assertions

This library was created because all the existing implementations I could find, including the in use @ethanresnick/chai-jest-snapshot
didn't properly support property matching. @ethanresnick/chai-jest-snapshot supposedly supported it, but the implementation was incorrect
and frequently lead to false test passes.

This library also has (after some back and forth) path resolution so that snapshots can live in a local __snapshots__ folder
2022-02-08 14:33:19 +00:00
Renovate Bot
0822a5b7a1 Update dependency @tryghost/request to v0.1.14 2022-02-08 11:08:48 +01:00
Renovate Bot
91b5c09f5e Update dependency @sentry/node to v6.17.5 2022-02-08 07:43:00 +00:00
Renovate Bot
1852521fca Update dependency cssnano to v5.0.17 2022-02-07 20:00:45 +01:00
Kevin Ansfield
f410893f3e 🐛 Fixed header cards not being linkable with #header-title
refs https://github.com/TryGhost/Team/issues/1316

Updates header card renderer so the `<h2>` and `<h3>` elements have slugified titles set on their `id` attributes to allow in-page and external #header-title anchor links.

- bumps `@tryghost/kg-default-cards` including the header card id fix
- bumps other `@tryghost/kg-*` packages that were released simultaneously - contains dependency updates and switch to `slugify()` from `@tryghost/kg-utils`
2022-02-07 18:52:18 +00:00
Hannah Wolfe
efdae70cbc
Updated members regression tests to use e2e framework (#14130)
- This is an example refactor to the new framework
 - This does not yet include snapshot testing (coming SOON)
2022-02-07 17:15:55 +00:00
Renovate Bot
2a1201ab30 Update Test & linting packages 2022-02-07 13:16:05 +01:00
Renovate Bot
361a7fe27d Update dependency @tryghost/bookshelf-plugins to v0.3.8 2022-02-07 09:10:41 +01:00
Renovate Bot
4c6257c09a Update dependency expect to v27.5.0 2022-02-07 09:08:50 +01:00
Hannah Wolfe
c9ca388a9f
Added new express-test framework to our ref tests (#14117) 2022-02-06 16:18:12 +00:00
Renovate Bot
787d23ee5e Update dependency node-jose to v2.1.0 2022-02-05 10:38:26 +00:00
Renovate Bot
619f605c46
Update dependency nock to v13.2.4 2022-02-04 19:55:19 +00:00
Renovate Bot
c873e204ae
Update dependency sanitize-html to v2.7.0 2022-02-04 17:45:26 +00:00
Daniel Lockyer
895acc9ed0 v4.35.0 2022-02-04 16:00:26 +00:00
Renovate Bot
3cebde7279 Update dependency @tryghost/version to v0.1.10 2022-02-04 15:45:20 +01:00
Renovate Bot
c47e48455e Update dependency @tryghost/request to v0.1.13 2022-02-04 15:37:26 +01:00
Renovate Bot
d41e980dba Update dependency @tryghost/job-manager to v0.8.19 2022-02-04 15:16:43 +01:00
Renovate Bot
8b5929138c Update dependency @tryghost/vhost-middleware to v1.0.21 2022-02-04 15:16:32 +01:00
Renovate Bot
5f0b7688ea Update dependency @tryghost/update-check-service to v0.3.1 2022-02-04 15:16:07 +01:00
Renovate Bot
f3adacd6e2 Update dependency @tryghost/nodemailer to v0.3.11 2022-02-04 14:18:45 +01:00
Renovate Bot
1bff41d10b Update dependency @tryghost/logging to v2.0.3 2022-02-04 14:17:43 +01:00
Renovate Bot
d860948f93 Update dependency @tryghost/metrics to v1.0.4 2022-02-04 14:17:30 +01:00
Renovate Bot
c2fd374930 Update dependency @tryghost/validator to v0.1.12 2022-02-04 14:07:19 +01:00
Renovate Bot
440e8c5d38 Update dependency @tryghost/debug to v0.1.12 2022-02-04 14:07:08 +01:00
Rishabh
6309764f11 Fixed incorrect id used for updating portal product setting
no refs

- bumps members-api package to use correct id for setting while updating value for portal_products
2022-02-04 18:29:25 +05:30
renovate[bot]
9146e3c4c3
Update dependency @tryghost/verification-trigger to v0.1.3 (#14116)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-04 12:08:55 +00:00
Renovate Bot
c6458f8a2f Update dependency @tryghost/root-utils to v0.3.10 2022-02-04 13:03:58 +01:00
Renovate Bot
30d2995f14 Update dependency @tryghost/tpl to v0.1.11 2022-02-04 13:02:30 +01:00
Hannah Wolfe
ff03d26bbb
Added snapshot utils to mocha requires for yarn test
- without this, you can't run any of the new tests with just yarn test path/to/file.test.js
2022-02-04 08:56:32 +00:00
Renovate Bot
6ac135d038
Update dependency nock to v13.2.3 2022-02-03 21:00:54 +00:00
Sam Lord
92c3e8d7ca Added source to the verification trigger
no issue

Helps us to tell the difference between a verification trigger caused by import vs API
2022-02-03 16:20:37 +00:00
Renovate Bot
5b76ae6ac5 Update dependency @tryghost/helpers to v1.1.56 2022-02-03 08:09:57 +00:00
Renovate Bot
bc17e6ac49 Update dependency postcss to v8.4.6 2022-02-03 08:09:33 +00:00
Renovate Bot
aa23f73074
Update dependency @sentry/node to v6.17.4 2022-02-02 16:05:19 +00:00
Matt Hanley
48bcb36adc Merged v4.34.3 into main
v4.34.3
2022-02-02 16:02:54 +00:00
Daniel Lockyer
06591cbace v4.34.3 2022-02-02 15:42:33 +00:00
Fabien "egg" O'Carroll
d00965df22 Disabled verification triggers from the API
no-issue

Due to a bug with the event filtering logic verification triggers were
happening when they shouldn't - for now we are disabling the trigger
until the bug is fixed
2022-02-02 17:16:15 +02:00
Thibaut Patel
ca2b078fcf Fixed a typo breaking the /members/events route
refs ac9c8c18a0

- This was a regression introduced by commit ac9c8c18a0
2022-02-02 13:31:53 +01:00
Renovate Bot
c95868a532
Update metascraper to v5.25.8 2022-02-02 01:02:13 +00:00
Fabien 'egg' O'Carroll
805c9f22f5
Added e2e test for comping Members (#14094)
no-issue
refs https://github.com/TryGhost/Members/commit/6860e3c1
refs https://github.com/TryGhost/Members/commit/03a6d694

This adds an e2e tests for the regression we had with comping members.

The stripe service imports the members service, which will instantiate
members-ssr once it is loaded, which will use the uninstantiated
settings cache resulting in errors due to a missing theme_session_secret.

For this reason we require the stripe service inside of the test function,
rather than at the top level of the file
2022-02-01 18:57:27 +02:00
Daniel Lockyer
fd69899b9f
Merged v4.34.2 into main
v4.34.2
2022-02-01 16:08:47 +00:00
Thibaut Patel
ac9c8c18a0
🐛 Fixed the event ordering in the member activity feed (#14093)
refs https://github.com/TryGhost/Team/issues/1299

- The email_delivered_event, email_opened_event and email_failed_event events weren't correctly ordered
- This has caused some of these events to not show
2022-02-01 16:37:51 +01:00
Daniel Lockyer
35ceb29915 v4.34.2 2022-02-01 15:30:01 +00:00
renovate[bot]
20b33dafa0
Update dependency @tryghost/members-api to v4.8.8 (#14059)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-02-01 15:07:19 +02:00
Thibaut Patel
9e5dd4a22b 🐛 Added missing payment events in the member activity feed
refs https://github.com/TryGhost/Team/issues/1297

- They were expected to be in the activity feed but were hidden
2022-02-01 13:30:34 +01:00
Fabien "egg" O'Carroll
db7ca3dedf Set default Tier name to Site Title
refs https://github.com/TryGhost/Team/issues/1289

The default Tier name is "Default Product" - this adds a check on
startup for this name, and will update it to the site title. This is so
that when Tiers is enabled, the user is presented with an expected value
for the Tier name.
2022-02-01 13:18:20 +02:00
Fabien "egg" O'Carroll
0040b6a441 Updated emails sending after paid signup
refs https://github.com/TryGhost/Team/issues/1168

This fixes the email being sent based on feedback from the welcome pages feature
2022-02-01 12:03:35 +02:00
Fabien "egg" O'Carroll
0c2922a23e Attached Tier to Subscriptions
refs https://github.com/TryGhost/Team/issues/1168

This will allow redirects to read the welcome page from the Tier object
of a members Subscription.
2022-02-01 11:45:16 +02:00
Daniel Lockyer
dd7227d622
Merged v4.34.1 into main
v4.34.1
2022-02-01 08:58:24 +00:00
Daniel Lockyer
6e4ec3b213 v4.34.1 2022-02-01 08:50:38 +00:00
Rishabh
c530ac2a92 Updated admin api schema to include tiers for post/page
refs TryGhost/Team#1071

- new `tiers` key is now attached to posts/pages API response to include tiers visibility
- updates expected response for post/page in tests to include `tiers`
2022-02-01 11:13:51 +05:30
Fabien "egg" O'Carroll
354bb5c9a1 Allowed welcome_page_url to be set on Tiers
refs https://github.com/TryGhost/Team/issues/1168

This updates the underlying members service to handle the new
welcome_page_url properties
2022-01-31 15:55:40 +02:00
Fabien "egg" O'Carroll
52a841d567 Fixed Complimentary subscriptions
refs https://github.com/TryGhost/Ghost/issues/14079

The stripe_prices API whilst not used publicly is still used for handling
complimentary subscriptions in the old (pre-tiers) system. This was mistakenly
removed, and has been reinstated with this commit.
2022-01-31 13:11:31 +02:00
Renovate Bot
42e384ab6a Update dependency @tryghost/color-utils to v0.1.7 2022-01-31 08:44:55 +00:00
Fabien "egg" O'Carroll
4f5257859d Added welcome_page_url to Products API
refs https://github.com/TryGhost/Team/issues/1168

This updates the JSON API Schema to allow for the welcome_page_url
property, as well as including the new column in API responses, so that
we can both read and write the value via the API.
2022-01-30 17:41:57 +02:00
Renovate Bot
b917c17ce8
Update dependency @sentry/node to v6.17.3 2022-01-28 17:48:36 +00:00
Daniel Lockyer
41fd15052d v4.34.0 2022-01-28 16:00:27 +00:00
Sam Lord
08829a6f0c
Trigger email verification workflow on API usage
refs: TryGhost/Toolbox#166

The new VerificationTrigger listens to events form the members repository, and will cause the verification workflow to be triggered if the number of events is greater than the configured threshold in a rolling 30 day window.

The importer also no longer depends on the import threshold, so the threshold testing is now done in the processImport method in Ghost - seems sensible since we already had this wrapper and the logic is now tiny, since it's just relying on @tryghost/verification-trigger to handle the real stuff.
2022-01-27 14:06:29 +00:00
Daniel Lockyer
b79ca4188d
Merged v4.33.2 into main
v4.33.2
2022-01-27 10:29:30 +00:00
Daniel Lockyer
5c88d40687 v4.33.2 2022-01-27 10:20:51 +00:00
Renovate Bot
c2977bcbc4 Update dependency chai to v4.3.6 2022-01-27 10:19:45 +00:00
Fabien "egg" O'Carroll
5dd2e5bd84 🐛 Fixed sending emails for paid signups
refs https://github.com/TryGhost/Team/issues/1293

A mistake in the email sending code when handling webhooks meant that
emails were not sent to new paid signups - however the member would
still be logged in afterwards, so no loss of access was incurred.
2022-01-26 22:30:04 +02:00
Renovate Bot
9699e88bce Update dependency @tryghost/logging to v2.0.2 2022-01-26 10:33:49 +00:00
Renovate Bot
a1efc7994b Update dependency @tryghost/request to v0.1.12 2022-01-26 10:22:36 +00:00
Renovate Bot
bf59a83cf4 Update dependency @tryghost/tpl to v0.1.10 2022-01-26 09:53:03 +00:00
Renovate Bot
7fcfdc7e95 Update dependency @tryghost/metrics to v1.0.3 2022-01-26 09:52:36 +00:00
Renovate Bot
8e27280c03 Update dependency @tryghost/root-utils to v0.3.9 2022-01-26 09:52:25 +00:00
Renovate Bot
aaaab239f4 Update dependency @tryghost/version to v0.1.9 2022-01-26 09:52:10 +00:00
Renovate Bot
4984ed4ce0 Update dependency @tryghost/validator to v0.1.11 2022-01-26 09:11:46 +00:00
Renovate Bot
7ad538b3d0 Update dependency @sentry/node to v6.17.2 2022-01-26 00:32:06 +00:00
Renovate Bot
f0d3c403c6 Update dependency chai to v4.3.5 2022-01-25 19:04:25 +00:00
Renovate Bot
55255db33d Update dependency @tryghost/bookshelf-plugins to v0.3.7 2022-01-25 17:04:51 +00:00
Thibaut Patel
6b4c30fe6d Removed de-duplication of events in /members/events
refs https://github.com/TryGhost/Team/issues/1277

- When a user signs-up, two events are created, the api route was only returning one of these events.
- This was introduce in commit 120116e8a2 when the only usage of the api route was to extract the 5 most recent events. Any duplication was creating too much noise.
- This was creating issues now that we introduced event filtering. Some `newsletter_event` events would appear from nowhere we we were filtering-out `signup_event` events.
- We removed the deduplication when the `membersActivityFeed` flag is enabled.
2022-01-25 17:38:44 +01:00
Renovate Bot
d73c39e64d Update dependency @tryghost/debug to v0.1.11 2022-01-25 16:35:58 +00:00
Renovate Bot
91ed842410 Update dependency @tryghost/nodemailer to v0.3.10 2022-01-25 16:35:30 +00:00
Thibaut Patel
b55b9741e5 Updated the /members/events route to support filters
refs https://github.com/TryGhost/Team/issues/1277

- The filters `type`, `data.created_at` and `data.member_id` are available and working as expected
2022-01-25 12:40:38 +01:00
Renovate Bot
d3dfa1e5a1 Update dependency @tryghost/members-api to v4.7.1 2022-01-24 20:38:39 +00:00