2013-06-15 20:52:03 +00:00
|
|
|
/*globals describe, beforeEach, it*/
|
2013-06-25 12:43:15 +01:00
|
|
|
var _ = require("underscore"),
|
|
|
|
should = require('should'),
|
|
|
|
when = require('when'),
|
|
|
|
sinon = require('sinon'),
|
2013-07-11 20:02:18 +01:00
|
|
|
knex = require("../../server/models/base").Knex,
|
2013-06-25 12:43:15 +01:00
|
|
|
helpers = require('./helpers'),
|
2013-07-11 20:02:18 +01:00
|
|
|
exporter = require('../../server/data/export'),
|
|
|
|
importer = require('../../server/data/import'),
|
|
|
|
Importer001 = require('../../server/data/import/001'),
|
|
|
|
errors = require('../../server/errorHandling');
|
2013-06-25 12:43:15 +01:00
|
|
|
|
|
|
|
describe("Import", function () {
|
|
|
|
|
|
|
|
should.exist(exporter);
|
2013-07-11 00:01:42 +01:00
|
|
|
should.exist(importer);
|
2013-06-25 12:43:15 +01:00
|
|
|
|
|
|
|
beforeEach(function (done) {
|
|
|
|
helpers.resetData().then(function () {
|
|
|
|
done();
|
2013-07-11 00:01:42 +01:00
|
|
|
}, done);
|
2013-06-25 12:43:15 +01:00
|
|
|
});
|
2013-06-15 20:52:03 +00:00
|
|
|
|
2013-06-25 12:43:15 +01: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
|
|
|
|
2013-06-25 12:43:15 +01:00
|
|
|
importer("001", fakeData).then(function () {
|
|
|
|
importStub.calledWith(fakeData).should.equal(true);
|
2013-06-15 20:52:03 +00:00
|
|
|
|
2013-06-25 12:43:15 +01:00
|
|
|
importStub.restore();
|
2013-06-15 20:52:03 +00:00
|
|
|
|
2013-06-25 12:43:15 +01:00
|
|
|
done();
|
2013-07-11 13:50:31 +01:00
|
|
|
}).then(null, done);
|
2013-06-25 12:43:15 +01:00
|
|
|
});
|
2013-06-15 20:52:03 +00:00
|
|
|
|
2013-06-25 12:43:15 +01: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);
|
2013-07-11 13:50:31 +01:00
|
|
|
}).then(function () {
|
2013-06-25 12:43:15 +01:00
|
|
|
// 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();
|
2013-07-11 13:50:31 +01:00
|
|
|
}).then(null, done);
|
2013-06-15 20:52:03 +00:00
|
|
|
});
|
|
|
|
});
|
2013-06-25 12:43:15 +01:00
|
|
|
});
|