mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-27 22:49:56 -05:00
1ecb837981
refs https://github.com/TryGhost/Toolbox/issues/292 - When version missmatch handling is done in Ghost we need to store the 'Accept-Version' header values that have been already processed in the past (to avoid sending notifications about the same mismatch multiple times) - The `version_notifications` will be storing an array with handled versions like so: `['v3.44', 'v4.23', 'v4.39']`. - The emailing logic and processing is slightly similar to how "notification" key is handled, that's why I've placed the definition of this new key close by.
52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
const db = require('../../../core/server/data/db');
|
|
const testUtils = require('../../utils');
|
|
|
|
/**
|
|
* @NOTE
|
|
*
|
|
* If this test fails for you, you have modified the default settings.
|
|
* When you make a change or add new setting, please ensure that:
|
|
* - If a new `core` setting is added/removed/renamed, update the allowlist below
|
|
* - If a new non-`core` setting is added, it includes corresponding migration to populate its `group` and `flags`
|
|
*/
|
|
|
|
describe('Settings', function () {
|
|
before(testUtils.setup());
|
|
|
|
// Allowlist: Only this list needs updating when a core setting is added/removed/renamed
|
|
const coreSettingKeys = [
|
|
'db_hash',
|
|
'routes_hash',
|
|
'next_update_check',
|
|
'notifications',
|
|
'version_notifications',
|
|
'session_secret',
|
|
'theme_session_secret',
|
|
'ghost_public_key',
|
|
'ghost_private_key',
|
|
'members_public_key',
|
|
'members_private_key',
|
|
'members_email_auth_secret',
|
|
'members_stripe_webhook_id',
|
|
'members_stripe_webhook_secret'
|
|
];
|
|
// If this test is failing, then it is likely a new setting has been added without group migration
|
|
// In case of `core` setting modifications, allowlist above needs to be updated
|
|
it('should not modify core keys without fixing this test', function () {
|
|
return db.knex('settings')
|
|
.where('group', 'core')
|
|
.whereNotIn('key', coreSettingKeys)
|
|
.count('*')
|
|
.then(function (data) {
|
|
const countResult = data[0]['count(*)'];
|
|
countResult.should.eql(0);
|
|
})
|
|
.catch(function (err) {
|
|
// CASE: table does not exist
|
|
if (err.errno === 1146) {
|
|
return Promise.resolve();
|
|
}
|
|
throw err;
|
|
});
|
|
});
|
|
});
|