From 8f17c1683d8eadf559efada1ce70e71d96a47444 Mon Sep 17 00:00:00 2001 From: Naz Date: Fri, 18 Feb 2022 10:02:08 +0700 Subject: [PATCH] Added test-specific default-settings.json configuration refs https://github.com/TryGhost/Toolbox/issues/214 - Having this config for test environment allows to pre-populate default settings values in the settings table - Right now the default-settings.json is an exact copy of the original "/data/schema/default-settings/default-settings.json". Having a starter file as an exact copy, allows to track the differences between environments as they are introduced easier --- .../config/env/config.testing-mysql.json | 1 + core/shared/config/env/config.testing.json | 1 + test/unit/shared/config/loader.test.js | 1 + test/utils/fixtures/default-settings.json | 607 ++++++++++++++++++ 4 files changed, 610 insertions(+) create mode 100644 test/utils/fixtures/default-settings.json diff --git a/core/shared/config/env/config.testing-mysql.json b/core/shared/config/env/config.testing-mysql.json index c14947c315..f86474ccc7 100644 --- a/core/shared/config/env/config.testing-mysql.json +++ b/core/shared/config/env/config.testing-mysql.json @@ -53,6 +53,7 @@ "useMinFiles": false, "paths": { "fixtures": "test/utils/fixtures/fixtures", + "defaultSettings": "test/utils/fixtures/default-settings.json", "urlCache": "test/utils/fixtures/urls" } } diff --git a/core/shared/config/env/config.testing.json b/core/shared/config/env/config.testing.json index 18a35aafde..d40ea27557 100644 --- a/core/shared/config/env/config.testing.json +++ b/core/shared/config/env/config.testing.json @@ -52,6 +52,7 @@ "useMinFiles": false, "paths": { "fixtures": "test/utils/fixtures/fixtures", + "defaultSettings": "test/utils/fixtures/default-settings.json", "urlCache": "test/utils/fixtures/urls" } } diff --git a/test/unit/shared/config/loader.test.js b/test/unit/shared/config/loader.test.js index 53456b7b5b..a761b70f79 100644 --- a/test/unit/shared/config/loader.test.js +++ b/test/unit/shared/config/loader.test.js @@ -96,6 +96,7 @@ describe('Config Loader', function () { Object.keys(pathConfig).should.eql([ 'contentPath', 'fixtures', + 'defaultSettings', 'assetSrc', 'urlCache', 'appRoot', diff --git a/test/utils/fixtures/default-settings.json b/test/utils/fixtures/default-settings.json new file mode 100644 index 0000000000..8091b60fb9 --- /dev/null +++ b/test/utils/fixtures/default-settings.json @@ -0,0 +1,607 @@ +{ + "core": { + "db_hash": { + "defaultValue": null, + "type": "string" + }, + "routes_hash": { + "defaultValue": null, + "type": "string" + }, + "next_update_check": { + "defaultValue": null, + "type": "number" + }, + "notifications": { + "defaultValue": "[]", + "type": "array" + }, + "session_secret": { + "defaultValue": null, + "type": "string" + }, + "theme_session_secret": { + "defaultValue": null, + "type": "string" + }, + "ghost_public_key": { + "defaultValue": null, + "type": "string" + }, + "ghost_private_key": { + "defaultValue": null, + "type": "string" + }, + "members_public_key": { + "defaultValue": null, + "type": "string" + }, + "members_private_key": { + "defaultValue": null, + "type": "string" + }, + "members_email_auth_secret": { + "defaultValue": null, + "type": "string" + }, + "members_stripe_webhook_id": { + "defaultValue": null, + "type": "string" + }, + "members_stripe_webhook_secret": { + "defaultValue": null, + "type": "string" + } + }, + "site": { + "title": { + "defaultValue": "Ghost", + "validations": { + "isLength": { + "max": 150 + } + }, + "flags": "PUBLIC", + "type": "string" + }, + "description": { + "defaultValue": "Thoughts, stories and ideas", + "validations": { + "isLength": { + "max": 200 + } + }, + "flags": "PUBLIC", + "type": "string" + }, + "logo": { + "defaultValue": "", + "type": "string" + }, + "cover_image": { + "defaultValue": "https://static.ghost.org/v4.0.0/images/publication-cover.jpg", + "type": "string" + }, + "icon": { + "defaultValue": "", + "type": "string" + }, + "accent_color": { + "defaultValue": "#FF1A75", + "flags": "PUBLIC", + "validations": { + "isEmpty": false + }, + "type": "string" + }, + "lang": { + "defaultValue": "en", + "validations": { + "isEmpty": false + }, + "type": "string" + }, + "timezone": { + "defaultValue": "Etc/UTC", + "validations": { + "isTimezone": true, + "isEmpty": false + }, + "type": "string" + }, + "codeinjection_head": { + "defaultValue": "", + "type": "string" + }, + "codeinjection_foot": { + "defaultValue": "", + "type": "string" + }, + "facebook": { + "defaultValue": "ghost", + "type": "string" + }, + "twitter": { + "defaultValue": "@ghost", + "type": "string" + }, + "navigation": { + "defaultValue": "[{\"label\":\"Home\",\"url\":\"/\"},{\"label\":\"About\",\"url\":\"/about/\"},{\"label\":\"Collection\",\"url\":\"/tag/getting-started/\"},{\"label\":\"Author\",\"url\":\"/author/ghost/\"},{\"label\":\"Portal\",\"url\":\"/portal/\"}]", + "type": "array" + }, + "secondary_navigation": { + "defaultValue": "[{\"label\":\"Data & privacy\",\"url\":\"/privacy/\"},{\"label\":\"Contact\",\"url\":\"/contact/\"},{\"label\":\"Contribute →\",\"url\":\"/contribute/\"}]", + "type": "array" + }, + "meta_title": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 300 + } + }, + "type": "string" + }, + "meta_description": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 500 + } + }, + "type": "string" + }, + "og_image": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 2000 + } + }, + "type": "string" + }, + "og_title": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 300 + } + }, + "type": "string" + }, + "og_description": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 300 + } + }, + "type": "string" + }, + "twitter_image": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 2000 + } + }, + "type": "string" + }, + "twitter_title": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 300 + } + }, + "type": "string" + }, + "twitter_description": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 300 + } + }, + "type": "string" + } + }, + "theme": { + "active_theme": { + "defaultValue": "casper", + "flags": "RO", + "type": "string" + } + }, + "private": { + "is_private": { + "defaultValue": "false", + "validations": { + "isIn": [["true", "false"]] + }, + "type": "boolean" + }, + "password": { + "defaultValue": "", + "type": "string" + }, + "public_hash": { + "defaultValue": null, + "type": "string" + } + }, + "members": { + "default_content_visibility": { + "defaultValue": "public", + "type": "string" + }, + "default_content_visibility_tiers": { + "defaultValue": "[]", + "type": "array" + }, + "members_signup_access": { + "defaultValue": "all", + "validations": { + "isEmpty": false, + "isIn": [["all", "invite", "none"]] + }, + "type": "string" + }, + "members_from_address": { + "defaultValue": "noreply", + "flags": "RO", + "type": "string" + }, + "members_support_address": { + "defaultValue": "noreply", + "flags": "PUBLIC,RO", + "type": "string" + }, + "members_reply_address": { + "defaultValue": "newsletter", + "validations": { + "isEmpty": false, + "isIn": [["newsletter", "support"]] + }, + "type": "string" + }, + "members_free_signup_redirect": { + "defaultValue": "/", + "type": "string" + }, + "members_paid_signup_redirect": { + "defaultValue": "/", + "type": "string" + }, + "stripe_product_name": { + "defaultValue": "Ghost Subscription", + "type": "string" + }, + "stripe_secret_key": { + "defaultValue": null, + "type": "string" + }, + "stripe_publishable_key": { + "defaultValue": null, + "type": "string" + }, + "stripe_plans": { + "defaultValue": "[]", + "type": "array" + }, + "stripe_connect_publishable_key": { + "defaultValue": null, + "type": "string" + }, + "stripe_connect_secret_key": { + "defaultValue": null, + "type": "string" + }, + "stripe_connect_livemode": { + "defaultValue": null, + "type": "boolean" + }, + "stripe_connect_display_name": { + "defaultValue": null, + "type": "string" + }, + "stripe_connect_account_id": { + "defaultValue": null, + "type": "string" + }, + "members_free_price_name": { + "defaultValue": "Free", + "type": "string" + }, + "members_free_price_description": { + "defaultValue": "Free preview", + "type": "string" + }, + "members_monthly_price_id": { + "defaultValue": null, + "type": "string" + }, + "members_yearly_price_id": { + "defaultValue": null, + "type": "string" + } + }, + "portal": { + "portal_name": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean" + }, + "portal_button": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean" + }, + "portal_plans": { + "defaultValue": "[\"free\"]", + "type": "array" + }, + "portal_products": { + "defaultValue": "[]", + "type": "array" + }, + "portal_button_style": { + "defaultValue": "icon-and-text", + "validations": { + "isEmpty": false, + "isIn": [["text-only", "icon-and-text", "icon-only"]] + }, + "type": "string" + }, + "portal_button_icon": { + "defaultValue": null, + "type": "string" + }, + "portal_button_signup_text": { + "defaultValue": "Subscribe", + "type": "string" + } + }, + "email": { + "mailgun_domain": { + "defaultValue": null, + "type": "string" + }, + "mailgun_api_key": { + "defaultValue": null, + "type": "string" + }, + "mailgun_base_url": { + "defaultValue": null, + "type": "string" + }, + "email_track_opens": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean" + }, + "email_verification_required": { + "defaultValue": "false", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean", + "flags": "RO" + } + }, + "amp": { + "amp": { + "defaultValue": "false", + "validations": { + "isIn": [["true", "false"]] + }, + "type": "boolean" + }, + "amp_gtag_id": { + "defaultValue": null, + "type": "string" + } + }, + "firstpromoter": { + "firstpromoter": { + "defaultValue": "false", + "validations": { + "isIn": [ + [ + "true", + "false" + ] + ] + }, + "type": "boolean" + }, + "firstpromoter_id": { + "defaultValue": null, + "type": "string" + } + }, + "labs": { + "labs": { + "defaultValue": "{}", + "type": "object" + } + }, + "slack": { + "slack_url": { + "defaultValue": "", + "type": "string" + }, + "slack_username": { + "defaultValue": "Ghost", + "type": "string" + } + }, + "unsplash": { + "unsplash": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean" + } + }, + "views": { + "shared_views": { + "defaultValue": "[]", + "type": "array" + } + }, + "newsletter": { + "newsletter_show_badge": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "true", + "false" + ] + ] + }, + "type": "boolean" + }, + "newsletter_header_image": { + "defaultValue": null, + "validations": { + "isLength": { + "max": 2000 + } + }, + "type": "string" + }, + "newsletter_show_header_icon": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "true", + "false" + ] + ] + }, + "type": "boolean" + }, + "newsletter_show_header_title": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "true", + "false" + ] + ] + }, + "type": "boolean" + }, + "newsletter_title_alignment": { + "defaultValue": "center", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "center", + "left" + ] + ] + }, + "type": "string" + }, + "newsletter_title_font_category": { + "defaultValue": "sans_serif", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "serif", + "sans_serif" + ] + ] + }, + "type": "string" + }, + "newsletter_show_feature_image": { + "defaultValue": "true", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "true", + "false" + ] + ] + }, + "type": "boolean" + }, + "newsletter_body_font_category": { + "defaultValue": "sans_serif", + "validations": { + "isEmpty": false, + "isIn": [ + [ + "serif", + "sans_serif" + ] + ] + }, + "type": "string" + }, + "newsletter_footer_content": { + "defaultValue": "", + "type": "string" + } + }, + "oauth": { + "oauth_client_id" : { + "defaultValue": null, + "type": "string" + }, + "oauth_client_secret" : { + "defaultValue": null, + "type": "string" + } + }, + "editor": { + "editor_default_email_recipients": { + "defaultValue": "visibility", + "type": "string", + "validations": { + "isEmpty": false, + "isIn": [[ + "disabled", + "visibility", + "filter" + ]] + } + }, + "editor_default_email_recipients_filter": { + "defaultValue": "all", + "type": "string" + }, + "editor_is_launch_complete": { + "defaultValue": "false", + "validations": { + "isEmpty": false, + "isIn": [["true", "false"]] + }, + "type": "boolean" + } + } +}