mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
Added settingsCache handling to e2e-framework
refs: https://github.com/Ghost/Ghost/commit/b5ee17b25 - When moving the site tests into e2e-api they broke because they were getting the changed settings value from the settings test - The solution is to ensure the settingsCache is reset between tests, which is what this commit does - This commit also renames the shutdown method to reset, because this is not a permanent operation - It also renames the resetDb method to resetData, because the concept is we want the internal data to be reset, not just the DB
This commit is contained in:
parent
b5ee17b25f
commit
0ab2f36c22
3 changed files with 21 additions and 8 deletions
|
@ -30,9 +30,9 @@ module.exports = {
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shutdown the cache, used in force boot during testing
|
* Restore the cache, used during e2e testing only
|
||||||
*/
|
*/
|
||||||
shutdown() {
|
reset() {
|
||||||
SettingsCache.reset(events);
|
SettingsCache.reset(events);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,9 @@ const boot = require('../../core/boot');
|
||||||
const TestAgent = require('./test-agent');
|
const TestAgent = require('./test-agent');
|
||||||
const db = require('./db-utils');
|
const db = require('./db-utils');
|
||||||
|
|
||||||
|
// Services that need resetting
|
||||||
|
const settingsService = require('../../core/server/services/settings');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {Object} [options={}]
|
* @param {Object} [options={}]
|
||||||
* @param {Boolean} [options.backend] Boot the backend
|
* @param {Boolean} [options.backend] Boot the backend
|
||||||
|
@ -54,8 +57,8 @@ const startGhost = async (options = {}) => {
|
||||||
server: false
|
server: false
|
||||||
};
|
};
|
||||||
|
|
||||||
// Ensure the DB state
|
// Ensure the state of all data, including DB and caches
|
||||||
await resetDb();
|
await resetData();
|
||||||
|
|
||||||
const bootOptions = Object.assign({}, defaults, options);
|
const bootOptions = Object.assign({}, defaults, options);
|
||||||
|
|
||||||
|
@ -124,8 +127,18 @@ const getFixture = (type, index = 0) => {
|
||||||
return fixtureUtils.DataGenerator.forKnex[type][index];
|
return fixtureUtils.DataGenerator.forKnex[type][index];
|
||||||
};
|
};
|
||||||
|
|
||||||
const resetDb = async () => {
|
/**
|
||||||
await db.reset();
|
* This function ensures that Ghost's data is reset back to "factory settings"
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
const resetData = async () => {
|
||||||
|
// Calling reset on the database also causes the fixtures to be re-run
|
||||||
|
// We need to unhook the settings events and restore the cache before we do this
|
||||||
|
// Otherwise, the fixtures being restored will refer to the old settings cache data
|
||||||
|
settingsService.reset();
|
||||||
|
|
||||||
|
// Clear out the database
|
||||||
|
await db.reset({truncate: true});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -198,7 +211,7 @@ module.exports = {
|
||||||
get: getFixture,
|
get: getFixture,
|
||||||
getCurrentOwnerUser: fixtureUtils.getCurrentOwnerUser,
|
getCurrentOwnerUser: fixtureUtils.getCurrentOwnerUser,
|
||||||
init: initFixtures,
|
init: initFixtures,
|
||||||
reset: resetDb
|
restore: resetData
|
||||||
},
|
},
|
||||||
matchers: {
|
matchers: {
|
||||||
anyString: any(String),
|
anyString: any(String),
|
||||||
|
|
|
@ -155,7 +155,7 @@ const freshModeGhostStart = async (options) => {
|
||||||
await stopGhost();
|
await stopGhost();
|
||||||
|
|
||||||
// Reset the settings cache and disable listeners so they don't get triggered further
|
// Reset the settings cache and disable listeners so they don't get triggered further
|
||||||
settingsService.shutdown();
|
settingsService.reset();
|
||||||
|
|
||||||
await dbUtils.reset();
|
await dbUtils.reset();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue