Circle CI (#113)

Circle CI
This commit is contained in:
Jori Lallo
2017-07-08 21:13:47 -07:00
committed by GitHub
parent 8de135db91
commit b64e47f42a
8 changed files with 107 additions and 74 deletions

24
circle.yml Normal file
View File

@@ -0,0 +1,24 @@
machine:
node:
version: 7.6
services:
- redis
environment:
ENVIRONMENT: test
PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
SEQUELIZE_SECRET: F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634B
DATABASE_URL_TEST: postgres://ubuntu@localhost:5432/circle_test
DATABASE_URL: postgres://ubuntu@localhost:5432/circle_test
dependencies:
override:
- yarn
cache_directories:
- ~/.cache/yarn
test:
pre:
- sequelize db:migrate --url postgres://ubuntu@localhost:5432/circle_test
override:
- yarn test
- yarn lint

View File

@@ -5,8 +5,7 @@ describe('Document model', () => {
test('should initialize with data', () => { test('should initialize with data', () => {
const document = new Document({ const document = new Document({
id: 123, id: 123,
title: 'Onboarding', text: '# Onboarding\nSome body text',
text: 'Some body text'
}); });
expect(document.title).toBe('Onboarding'); expect(document.title).toBe('Onboarding');
}); });

View File

@@ -5,8 +5,7 @@
"<rootDir>/server" "<rootDir>/server"
], ],
"setupFiles": [ "setupFiles": [
"<rootDir>/__mocks__/console.js", "<rootDir>/__mocks__/console.js"
"./server/test/helper.js"
], ],
"testEnvironment": "node" "testEnvironment": "node"
} }

View File

@@ -1,14 +1,16 @@
module.exports = { module.exports = {
up: (queryInterface, Sequelize) => { up: (queryInterface, Sequelize) => {
queryInterface.renameTable('atlases', 'collections'); queryInterface.renameTable('atlases', 'collections').then(() => {
queryInterface.addColumn('collections', 'documentStructure', { queryInterface.addColumn('collections', 'documentStructure', {
type: Sequelize.JSONB, type: Sequelize.JSONB,
allowNull: true, allowNull: true,
}); });
});
}, },
down: (queryInterface, _Sequelize) => { down: (queryInterface, _Sequelize) => {
queryInterface.renameTable('collections', 'atlases'); queryInterface.renameTable('collections', 'atlases').then(() => {
queryInterface.removeColumn('atlases', 'documentStructure'); queryInterface.removeColumn('atlases', 'documentStructure');
});
}, },
}; };

View File

@@ -1,6 +1,7 @@
module.exports = { module.exports = {
up: function(queryInterface, Sequelize) { up: function(queryInterface, Sequelize) {
queryInterface.createTable('views', { queryInterface
.createTable('views', {
id: { id: {
type: Sequelize.UUID, type: Sequelize.UUID,
allowNull: false, allowNull: false,
@@ -27,14 +28,17 @@ module.exports = {
type: Sequelize.DATE, type: Sequelize.DATE,
allowNull: false, allowNull: false,
}, },
}); })
.then(() => {
queryInterface.addIndex('views', ['documentId', 'userId'], { queryInterface.addIndex('views', ['documentId', 'userId'], {
indicesType: 'UNIQUE', indicesType: 'UNIQUE',
}); });
});
}, },
down: function(queryInterface, Sequelize) { down: function(queryInterface, Sequelize) {
queryInterface.removeIndex('views', ['documentId', 'userId']); queryInterface.removeIndex('views', ['documentId', 'userId']).then(() => {
queryInterface.dropTable('views'); queryInterface.dropTable('views');
});
}, },
}; };

View File

@@ -1,6 +1,7 @@
module.exports = { module.exports = {
up: function(queryInterface, Sequelize) { up: function(queryInterface, Sequelize) {
queryInterface.createTable('stars', { queryInterface
.createTable('stars', {
id: { id: {
type: Sequelize.UUID, type: Sequelize.UUID,
allowNull: false, allowNull: false,
@@ -22,14 +23,17 @@ module.exports = {
type: Sequelize.DATE, type: Sequelize.DATE,
allowNull: false, allowNull: false,
}, },
}); })
.then(() => {
queryInterface.addIndex('stars', ['documentId', 'userId'], { queryInterface.addIndex('stars', ['documentId', 'userId'], {
indicesType: 'UNIQUE', indicesType: 'UNIQUE',
}); });
});
}, },
down: function(queryInterface, Sequelize) { down: function(queryInterface, Sequelize) {
queryInterface.removeIndex('stars', ['documentId', 'userId']); queryInterface.removeIndex('stars', ['documentId', 'userId']).then(() => {
queryInterface.dropTable('stars'); queryInterface.dropTable('stars');
});
}, },
}; };

View File

@@ -1,4 +1,5 @@
require('dotenv').config({ silent: true }); // @flow
require('../../init');
// test environment variables // test environment variables
process.env.DATABASE_URL = process.env.DATABASE_URL_TEST; process.env.DATABASE_URL = process.env.DATABASE_URL_TEST;