Skip to content

Commit

Permalink
Refactored importer tests
Browse files Browse the repository at this point in the history
no issue

- these tests were a mess
- we had many duplicated tests
- it was very hard to work with the exporter files
- i have tidied up the whole file
  - first section: all general importer tests based on the current Ghost version
  - second section: 1.0 tests
- everything is now JSON based (much easier to control)
  • Loading branch information
kirrg001 committed Aug 16, 2018
1 parent 7db0739 commit e99015e
Show file tree
Hide file tree
Showing 35 changed files with 1,211 additions and 11,781 deletions.
8 changes: 8 additions & 0 deletions core/server/data/importer/importers/data/clients.js
Expand Up @@ -68,6 +68,14 @@ class ClientsImporter extends BaseImporter {
});
}

// @NOTE: name is also unique
return models[this.modelName].findOne({name: obj.name}, options);
})
.then((client) => {
if (client) {
obj.name = `${obj.name}-1`;
}

return models[this.modelName].add(obj, options)
.then((importedModel) => {
obj.model = {
Expand Down
2,888 changes: 1,138 additions & 1,750 deletions core/test/integration/data/importer/importers/data_spec.js

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions core/test/unit/data/importer/index_spec.js
Expand Up @@ -313,8 +313,8 @@ describe('Importer', function () {

it('correctly handles a valid db api wrapper', function (done) {
var file = [{
path: testUtils.fixtures.getExportFixturePath('export-003-api-wrapper', {lts: true}),
name: 'export-003-api-wrapper.json'
path: testUtils.fixtures.getExportFixturePath('valid'),
name: 'valid.json'
}];
JSONHandler.loadFile(file).then(function (result) {
_.keys(result).should.containEql('meta');
Expand All @@ -325,8 +325,8 @@ describe('Importer', function () {

it('correctly errors when given a bad db api wrapper', function (done) {
var file = [{
path: testUtils.fixtures.getExportFixturePath('export-003-api-wrapper-bad', {lts: true}),
name: 'export-003-api-wrapper-bad.json'
path: testUtils.fixtures.getExportFixturePath('broken'),
name: 'broken.json'
}];

JSONHandler.loadFile(file).then(function () {
Expand Down
47 changes: 46 additions & 1 deletion core/test/utils/fixtures/data-generator.js
Expand Up @@ -530,6 +530,23 @@ DataGenerator.forKnex = (function () {
};
}

function createUsersRoles(userId, roleId) {
return {
id: ObjectId.generate(),
user_id: userId,
role_id: roleId
};
}

function createPostsAuthors(postId, authorId, sort_order = 0) {
return {
id: ObjectId.generate(),
author_id: authorId,
post_id: postId,
sort_order: sort_order
};
}

function createAppField(overrides) {
var newObj = _.cloneDeep(overrides);

Expand All @@ -555,6 +572,31 @@ DataGenerator.forKnex = (function () {
});
}

function createSubscriber(overrides) {
const newObj = _.cloneDeep(overrides);

return _.defaults(newObj, {
id: ObjectId.generate(),
email: 'subscriber@ghost.org'
});
}

function createSetting(overrides) {
const newObj = _.cloneDeep(overrides);

return _.defaults(newObj, {
id: ObjectId.generate(),
uuid: "95ce1c53-69b0-4f5f-be91-d3aeb39046b5",
key: "title",
value: null,
type: "blog",
created_at: new Date(),
created_by: DataGenerator.Content.users[0].id,
updated_at: new Date(),
updated_by: DataGenerator.Content.users[0].id
});
}

function createToken(overrides) {
var newObj = _.cloneDeep(overrides);

Expand Down Expand Up @@ -799,6 +841,8 @@ DataGenerator.forKnex = (function () {
createGenericPost: createGenericPost,
createTag: createTag,
createUser: createUser,
createUsersRoles: createUsersRoles,
createPostsAuthors: createPostsAuthors,
createClient: createClient,
createGenericUser: createGenericUser,
createBasic: createBasic,
Expand All @@ -807,9 +851,10 @@ DataGenerator.forKnex = (function () {
createPostsTags: createPostsTags,
createApp: createBasic,
createAppField: createAppField,
createSetting: createSetting,
createAppSetting: createAppSetting,
createToken: createToken,
createSubscriber: createBasic,
createSubscriber: createSubscriber,
createInvite: createInvite,
createTrustedDomain: createTrustedDomain,
createWebhook: createWebhook,
Expand Down
9 changes: 9 additions & 0 deletions core/test/utils/fixtures/export/broken.json
@@ -0,0 +1,9 @@
{"asdadas":[{
"meta": {
"exported_on": 1388318311015,
"version": "003"
},
"data": {
"posts": []
}
}]}
344 changes: 0 additions & 344 deletions core/test/utils/fixtures/export/export-authors.json

This file was deleted.

194 changes: 0 additions & 194 deletions core/test/utils/fixtures/export/lts/export-000.json

This file was deleted.

0 comments on commit e99015e

Please sign in to comment.