Commit Graph

65 Commits

Author SHA1 Message Date
Daniel Lockyer
8859d6298c
Added guard for activateTheme being called in parallel causing sync bugs (#15053)
refs https://github.com/TryGhost/Team/issues/1666

- it seems like we may have a situation where `.activateTheme()` can be called simultaneously resulting in unexpected behaviour in the sync such as duplicate theme setting records
- adjusted behaviour to keep track of the currently running activation within the service and if `.activateTheme()` is called again whilst it's in progress it will wait for completion of the first sync before exiting early or continuing with a new activation

**Note:** There is a known edge-case if there are _more_ than 2 parallel `.activateTheme()` calls. We don't believe that will be an issue but calling it out in case we do still see duplicated custom setting records being created.

Co-authored-by: Kevin Ansfield <kevin@lookingsideways.co.uk>
2022-08-04 11:29:58 +01:00
Daniel Lockyer
308a28d31a
Tidied up package READMEs
refs https://github.com/TryGhost/Toolbox/issues/354

- these READMEs were migrated over from when each package was in a
  different repo
- they also assume you're going to be publishing the packages because it
  mentions install instructions
- only a few of them contain custom content
- this commit deletes the majority of these files because they're now
  not useful
- any that contained other instructions have been cut down
2022-07-25 15:17:12 +02:00
Daniel Lockyer
61125d7605
Removed repository from component package.json files
refs https://github.com/TryGhost/Toolbox/issues/354

- these repository links made sense when they were in different repos
  and published to NPM but we don't publish these packages any more
- this commit deletes those keys from the files
2022-07-25 11:15:16 +02:00
Daniel Lockyer
d73d7da7ef
Deleted non-root LICENSE files
- these were copied over during the monorepo conversion but we're not
  going to be publishing these packages so the top-level LICENSE file
  covers all packages here
2022-07-25 08:35:59 +02:00
renovate[bot]
d228144c27 Pin dependencies 2022-07-21 16:27:57 +02:00
Daniel Lockyer
48fd5ca8cb
Removed posttest linting step
- linting is done as a separate step in CI and it's a git hook upon
  pushing locally, so we don't need to run it after tests
2022-07-21 10:09:36 +02:00
Daniel Lockyer
abdcd9a650
Switched to @tryghost/nql-lang
- we moved this from `@nexes` to the `@tryghost` organization a while
  back, and this was missed from the switchover
2022-07-20 17:54:13 +02:00
Daniel Lockyer
ed1bdac20c
Removed publicConfig from packages config
- this was leftover from the migration to the monorepo and won't be
  needed because we're not publishing the packages
2022-07-20 17:49:52 +02:00
Daniel Lockyer
d3930b50ef
Reworked imports for custom-theme-settings-service tests
- now they import from the package exports, we get a slight boost in
  coverage because `index.js` is now used
2022-07-20 17:47:23 +02:00
Daniel Lockyer
9fa789159c
Reset Publishing packages version and visibility
refs https://github.com/TryGhost/Toolbox/issues/354

- these packages are here for development and will be bundled when
  published, so they don't need versioning nor publishing
2022-07-20 17:20:24 +02:00
renovate[bot]
0fdbba9dbd Update Test & linting packages 2022-07-19 20:05:27 +00:00
Renovate Bot
76fbb32163 Update dependency c8 to v7.11.3 2022-05-16 04:53:53 +00:00
Matt Hanley
c11b0e822d Published new versions
- @tryghost/custom-theme-settings-service@0.3.3
 - @tryghost/email-analytics-provider-mailgun@1.0.9
 - @tryghost/email-analytics-service@1.0.7
2022-05-12 16:42:53 +01:00
Renovate Bot
a5174ff250 Update dependency sinon to v14 2022-05-09 02:31:27 +00:00
Renovate Bot
cc52c3b583 Update dependency c8 to v7.11.2 2022-05-02 19:13:17 +01:00
Renovate Bot
7d25bbec89 Update dependency mocha to v10 2022-05-02 00:44:17 +00:00
Renovate Bot
62af5754d0 Update dependency sinon to v13.0.2 2022-04-14 04:48:38 +00:00
Daniel Lockyer
3ecc15e02f Published new versions
- @tryghost/custom-theme-settings-service@0.3.2
 - @tryghost/email-analytics-provider-mailgun@1.0.8
 - @tryghost/email-analytics-service@1.0.6
2022-03-24 10:46:59 +00:00
Renovate Bot
dcedd7a737 Update dependency @tryghost/errors to v1 2022-03-24 10:46:16 +00:00
Renovate Bot
1a1453dc34 Update dependency mocha to v9.2.2 2022-03-11 17:39:51 +00:00
Daniel Lockyer
f4e24a76e2 Added --all to c8 command
refs https://github.com/TryGhost/Toolbox/issues/203

- without `--all`, c8 ignores files that should be included in the
  coverage score but aren't used in tests
- this means we have artificially high scores in places where this
  isn't used
- this commit adds `--all` where previously missing
- where this fails `--check-coverage`, that has been removed for
  now
2022-02-21 13:34:08 +01:00
Renovate Bot
171e15bd13 Update dependency mocha to v9.2.1 2022-02-21 00:48:38 +00:00
Renovate Bot
8b4be67e21 Update dependency sinon to v13.0.1 2022-02-01 15:42:48 +00:00
Renovate Bot
9223d9d1ae Update dependency sinon to v13 2022-01-31 00:29:57 +00:00
Renovate Bot
0da6639d63 Update dependency mocha to v9.2.0 2022-01-24 12:09:30 +00:00
Renovate Bot
1fd73d9429 Update Test & linting packages 2022-01-20 16:21:37 +00:00
Renovate Bot
0649cf36c9 Pin dependency @nexes/nql to 0.6.0 2022-01-20 14:27:59 +00:00
Renovate Bot
5a145de5b9 Update dependency c8 to v7.11.0 2022-01-20 14:22:54 +00:00
Renovate Bot
d8196129cb Update dependency mocha to v9.1.4 2022-01-14 20:50:48 +00:00
John O'Nolan
7a8b94d1d8 2022 2022-01-06 13:42:05 +00:00
Kevin Ansfield
8eeefab2e1 Published new versions
- @tryghost/custom-theme-settings-service@0.3.1
 - @tryghost/email-analytics-provider-mailgun@1.0.5
 - @tryghost/email-analytics-service@1.0.4
2021-10-26 10:15:36 +01:00
Kevin Ansfield
5c2f25d016 Fixed "Error parsing filter" when a theme name contains . chars
no issue

- we were passing the theme name directly in the model query filter string without any surrounding `'` chars meaning we were generating invalid filters
2021-10-26 10:14:39 +01:00
Renovate Bot
3399769cc9 Update dependency c8 to v7.10.0 2021-10-21 15:24:51 +02:00
Daniel Lockyer
73f21a5065 Added codecov.io coverage uploader to CI
refs https://linear.app/tryghost/issue/CORE-74/improve-the-test-situation

- this commit adds the codecov GitHub Action into CI so we can upload
  coverage reports
- the coverage files need to be in XML for them to work with
  codecov, so this commit also adds cobertura (XML) as a reporter
2021-10-20 14:36:35 +02:00
Kevin Ansfield
106f26eece Published new versions
- @tryghost/custom-theme-settings-service@0.3.0
2021-10-20 13:19:51 +01:00
Kevin Ansfield
2951da002c Added name argument to .activateTheme()
no issue

Ghost allows multiple themes with the same `name` value in `package.json` so it assigns custom names based on the file name. When syncing we were only looking at the package.json `name` value so there could be a syncing clash when swapping between active themes.

- added `name` as the first argument to `.activateTheme(name, theme)` so that the service's consumer is in control of settings sync applying to it's known theme name
2021-10-20 11:04:44 +01:00
Thibaut Patel
38e9f84d41 Published new versions
- @tryghost/custom-theme-settings-service@0.2.0
 - @tryghost/email-analytics-provider-mailgun@1.0.4
 - @tryghost/email-analytics-service@1.0.3
2021-10-20 11:46:57 +02:00
Thibaut Patel
e5e67fe6f0 Added validation for boolean and color
refs https://github.com/TryGhost/Team/issues/1107
refs https://github.com/TryGhost/Team/issues/1106
2021-10-20 11:23:14 +02:00
Renovate Bot
63668b8df3 Update dependency mocha to v9.1.3 2021-10-20 06:31:15 +00:00
Naz
1579d7f3ed Published new versions
- @tryghost/custom-theme-settings-service@0.1.2
 - @tryghost/email-analytics-provider-mailgun@1.0.3
2021-10-11 17:16:38 +02:00
Renovate Bot
c034eecb41 Pin dependency sinon to 11.1.2 2021-10-11 01:47:57 +00:00
Kevin Ansfield
265d18aeda Published new versions
- @tryghost/custom-theme-settings-service@0.1.1
2021-10-08 15:43:36 +01:00
Kevin Ansfield
7729560201 Fixed tests
- unsaved changes didn't make it into previous commit
2021-10-08 15:42:54 +01:00
Kevin Ansfield
b708c7ea67 Changed "NotFoundError" and "BadRequestError" to "ValidationError"
refs https://github.com/TryGhost/Team/issues/1104

- better matches the context of the request as we're validating known keys and valid options from multiple settings
  - "404 Not Found" didn't make sense because `/custom_theme_settings/` _does_ exist, it's just that one setting key wasn't known
  - "400 Bad Request" didn't make sense because the request was understood, it just failed validation of the setting values
2021-10-08 15:40:44 +01:00
Kevin Ansfield
43adbccb3a Published new versions
- @tryghost/custom-theme-settings-service@0.1.0
2021-10-07 16:58:21 +01:00
Kevin Ansfield
88fc9c7964 Added tests for Service class, fixed error when throwing invalid option error
refs https://github.com/TryGhost/Team/issues/1104

- there was a mismatch of template options when throwing error on invalid select value meaning we were erroring but with the wrong error type and message
- added missing `lodash` dependency in package.json
2021-10-07 16:57:52 +01:00
Kevin Ansfield
2583403b91 Renamed service internals with _ prefix to better delineate public API 2021-10-07 15:28:02 +01:00
Kevin Ansfield
dbf7d33c88 Added tests for Cache class, fixed singular .get('key') behaviour
refs https://github.com/TryGhost/Team/issues/1104

- `.get('key')` would error because it was incorrectly expecting the internal content object to contain `{key, value}` objects
- changed `.getAll()` to return a shallow copy of the internal content object so we don't leak references that can result in unexpected changes to the cache content
- changed the internal content object naming to `_content` to highlight that it's an internal/private implementation detail rather than a public API
2021-10-06 13:12:26 +01:00
Kevin Ansfield
ae83e5bbf3 Published new versions
- @tryghost/custom-theme-settings-service@0.0.6
2021-10-04 12:14:33 +01:00
Kevin Ansfield
1a9087cfa8 Fixed theme settings for non-active theme being destroyed/updated when syncing
no issue

- the `.browse()` call to fetch themes was not structured to filter out themes correctly so it was fetching all theme settings rather than only settings related to the current theme
2021-10-04 12:14:08 +01:00