0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-10 23:36:14 -05:00
ghost/core/test/unit/import_spec.js

79 lines
2.6 KiB
JavaScript
Raw Normal View History

2013-06-15 20:52:03 +00:00
/*globals describe, beforeEach, it*/
var _ = require("underscore"),
should = require('should'),
when = require('when'),
sinon = require('sinon'),
knex = require("../../server/models/base").Knex,
helpers = require('./helpers'),
exporter = require('../../server/data/export'),
importer = require('../../server/data/import'),
Importer001 = require('../../server/data/import/001'),
errors = require('../../server/errorHandling');
describe("Import", function () {
should.exist(exporter);
should.exist(importer);
beforeEach(function (done) {
helpers.resetData().then(function () {
done();
}, done);
});
2013-06-15 20:52:03 +00:00
it("resolves 001", function (done) {
var importStub = sinon.stub(Importer001, "importData", function () {
return when.resolve();
}),
fakeData = { test: true };
2013-06-15 20:52:03 +00:00
importer("001", fakeData).then(function () {
importStub.calledWith(fakeData).should.equal(true);
2013-06-15 20:52:03 +00:00
importStub.restore();
2013-06-15 20:52:03 +00:00
done();
}).then(null, done);
});
2013-06-15 20:52:03 +00:00
describe("001", function () {
this.timeout(4000);
should.exist(Importer001);
it("imports data from 001", function (done) {
var exportData;
// TODO: Should have static test data here?
exporter("001").then(function (exported) {
exportData = exported;
// Clear the data from all tables.
var tables = ['posts', 'users', 'roles', 'roles_users', 'permissions', 'permissions_roles', 'settings'],
truncateOps = _.map(tables, function (name) {
return knex(name).truncate();
});
return when.all(truncateOps);
}).then(function () {
return importer("001", exportData);
}).then(function () {
// Grab the data from tables
return when.all([
knex("users").select(),
knex("posts").select(),
knex("settings").select()
]);
}).then(function (importedData) {
should.exist(importedData);
importedData.length.should.equal(3);
importedData[0].length.should.equal(exportData.data.users.length);
importedData[1].length.should.equal(exportData.data.posts.length);
importedData[2].length.should.equal(exportData.data.settings.length);
2013-06-15 20:52:03 +00:00
done();
}).then(null, done);
2013-06-15 20:52:03 +00:00
});
});
});