mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-06 22:40:14 -05:00
702a016547
Fixes #1124 - Updated default mocha timeout to 15 seconds. Any future tests that depend on a timeout (and thus might be better off with a lower value) can override the default setting which is now 15 seconds. - Removed test-specific timeout overrides for the mocha tests. - Fixed the editor/splitbutton tests to wait for the appropriate selector instead of assuming the dom has been updated immediately. Should resolve intermittent timeouts when checking the splitbutton's applied classes.
96 lines
3.6 KiB
JavaScript
96 lines
3.6 KiB
JavaScript
/*globals describe, beforeEach, it*/
|
|
var testUtils = require('./testUtils'),
|
|
should = require('should'),
|
|
sinon = require('sinon'),
|
|
when = require('when'),
|
|
_ = require("underscore"),
|
|
errors = require('../../server/errorHandling'),
|
|
|
|
// Stuff we are testing
|
|
knex = require("../../server/models/base").Knex,
|
|
migration = require('../../server/data/migration'),
|
|
exporter = require('../../server/data/export'),
|
|
importer = require('../../server/data/import'),
|
|
Importer000 = require('../../server/data/import/000'),
|
|
fixtures = require('../../server/data/fixtures'),
|
|
Settings = require('../../server/models/settings').Settings;
|
|
|
|
describe("Import", function () {
|
|
|
|
should.exist(exporter);
|
|
should.exist(importer);
|
|
|
|
beforeEach(function (done) {
|
|
// clear database... we need to initialise it manually for each test
|
|
testUtils.clearData().then(function () {
|
|
done();
|
|
}, done);
|
|
});
|
|
|
|
it("resolves 000", function (done) {
|
|
var importStub = sinon.stub(Importer000, "importData", function () {
|
|
return when.resolve();
|
|
}),
|
|
fakeData = { test: true };
|
|
|
|
importer("000", fakeData).then(function () {
|
|
importStub.calledWith(fakeData).should.equal(true);
|
|
|
|
importStub.restore();
|
|
|
|
done();
|
|
}).then(null, done);
|
|
});
|
|
|
|
describe("000", function () {
|
|
should.exist(Importer000);
|
|
|
|
it("imports data from 000", function (done) {
|
|
var exportData;
|
|
|
|
// initialise database to version 000 - confusingly we have to set the max version to be one higher
|
|
// than the migration version we want. Could just use migrate from fresh here... but this is more explicit
|
|
migration.migrateUpFromVersion('000', '001').then(function () {
|
|
// Load the fixtures
|
|
return fixtures.populateFixtures();
|
|
}).then(function () {
|
|
// Initialise the default settings
|
|
return Settings.populateDefaults();
|
|
}).then(function () {
|
|
// export the version 000 data ready to import
|
|
// TODO: Should have static test data here?
|
|
return exporter();
|
|
}).then(function (exported) {
|
|
exportData = exported;
|
|
|
|
return importer("000", exportData);
|
|
}).then(function () {
|
|
// Grab the data from tables
|
|
return when.all([
|
|
knex("users").select(),
|
|
knex("posts").select(),
|
|
knex("settings").select(),
|
|
knex("tags").select()
|
|
]);
|
|
}).then(function (importedData) {
|
|
|
|
should.exist(importedData);
|
|
importedData.length.should.equal(4, 'Did not get data successfully');
|
|
|
|
// we always have 0 users as there isn't one in fixtures
|
|
importedData[0].length.should.equal(0, 'There should not be a user');
|
|
// import no longer requires all data to be dropped, and adds posts
|
|
importedData[1].length.should.equal(exportData.data.posts.length + 1, 'Wrong number of posts');
|
|
|
|
// test settings
|
|
importedData[2].length.should.be.above(0, 'Wrong number of settings');
|
|
_.findWhere(importedData[2], {key: "databaseVersion"}).value.should.equal("000", 'Wrong database version');
|
|
|
|
// test tags
|
|
importedData[3].length.should.equal(exportData.data.tags.length, 'no new tags');
|
|
|
|
done();
|
|
}).then(null, done);
|
|
});
|
|
});
|
|
});
|