From 17f78725f49009c1793587e01d5f14213d7376c5 Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Thu, 27 Sep 2018 01:03:41 -0400 Subject: [PATCH] Fix tests and do some clean up --- README.md | 28 ------- demo/app.js | 10 ++- package-lock.json | 162 +++++++++++++++++++++++++++----------- package.json | 2 +- src/lib/payload.js | 5 +- src/tests/api.spec.js | 20 +++++ src/tests/payload.spec.js | 10 +++ src/tests/payload.test.js | 80 ------------------- 8 files changed, 154 insertions(+), 163 deletions(-) create mode 100644 src/tests/api.spec.js create mode 100644 src/tests/payload.spec.js delete mode 100644 src/tests/payload.test.js diff --git a/README.md b/README.md index 73aa566d4..f39c5e592 100644 --- a/README.md +++ b/README.md @@ -4,33 +4,5 @@ Headless CMS ## Usage -```js -const Payload = require('payload'); - -// Initialize class -const payload = new Payload({ - express: app, - mongoose, - baseURL: 'base123' -}); - -// Sample collection creation -let coolCollection = payload.newCollection('cool'); -coolCollection.add({ - test: { testProp: 'one', testProp2: 'two' } -}); -coolCollection.register(); - -// Retrieve collection -let retrievedCollection = payload.getCollection('cool'); -console.log(`Retrieved ${retrievedCollection.key} collection`); -console.log(`testProp: ${coolCollection.fields.test.testProp}`); - -// Add payload views -app.set('views', [`${__dirname}/views`, payload.views]); -``` - ## Development -- `npm test` to run test suite -- `npm run cov` to test suite with coverage diff --git a/demo/app.js b/demo/app.js index 8a25b6021..d41309a39 100644 --- a/demo/app.js +++ b/demo/app.js @@ -6,7 +6,13 @@ const payloadConfig = require('./payload.config'); const routes = require(payloadConfig.dir.server); -mongoose.connect(payloadConfig.mongoURL); +mongoose.connect(payloadConfig.mongoURL, { useNewUrlParser: true }, (err) => { + if (err) { + console.log('Unable to connect to the Mongo server. Please start the server. Error:', err); + } else { + console.log('Connected to Mongo server successfully!'); + } +}); const app = module.exports = express(); @@ -14,7 +20,7 @@ app.use(express.json()); app.use(express.urlencoded({extended: true})); app.use('/', routes); -payload.init(app, mongoose, payloadConfig); +payload.init(app); app.listen(payloadConfig.port, () => { console.log(`listening on ${payloadConfig.port}...`); diff --git a/package-lock.json b/package-lock.json index 06e521f64..ca3fdc5f5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1734,42 +1734,10 @@ } }, "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true }, "babel-generator": { "version": "6.26.1", @@ -1806,13 +1774,13 @@ } }, "babel-jest": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.4.tgz", - "integrity": "sha512-A9NB6/lZhYyypR9ATryOSDcqBaqNdzq4U+CN+/wcMsLcmKkPxQEoTKLajGfd3IkxNyVBT8NewUK2nWyGbSzHEQ==", + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", "dev": true, "requires": { - "babel-plugin-istanbul": "^4.1.5", - "babel-preset-jest": "^22.4.4" + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-jest": "^23.2.0" } }, "babel-loader": { @@ -1849,9 +1817,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.4.tgz", - "integrity": "sha512-DUvGfYaAIlkdnygVIEl0O4Av69NtuQWcrjMOv6DODPuhuGLDnbsARz3AwiiI/EkIMMlxQDUcrZ9yoyJvTNjcVQ==", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", + "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", "dev": true }, "babel-plugin-syntax-object-rest-spread": { @@ -1861,12 +1829,12 @@ "dev": true }, "babel-preset-jest": { - "version": "22.4.4", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.4.tgz", - "integrity": "sha512-+dxMtOFwnSYWfum0NaEc0O03oSdwBsjx4tMSChRDPGwu/4wSY6Q6ANW3wkjKpJzzguaovRs/DODcT4hbSN8yiA==", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", + "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^22.4.4", + "babel-plugin-jest-hoist": "^23.2.0", "babel-plugin-syntax-object-rest-spread": "^6.13.0" } }, @@ -1885,6 +1853,42 @@ "source-map-support": "^0.4.15" }, "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", @@ -7495,6 +7499,68 @@ "yargs": "^10.0.3" }, "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-jest": { + "version": "22.4.4", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.4.4.tgz", + "integrity": "sha512-A9NB6/lZhYyypR9ATryOSDcqBaqNdzq4U+CN+/wcMsLcmKkPxQEoTKLajGfd3IkxNyVBT8NewUK2nWyGbSzHEQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "^4.1.5", + "babel-preset-jest": "^22.4.4" + } + }, + "babel-plugin-jest-hoist": { + "version": "22.4.4", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.4.tgz", + "integrity": "sha512-DUvGfYaAIlkdnygVIEl0O4Av69NtuQWcrjMOv6DODPuhuGLDnbsARz3AwiiI/EkIMMlxQDUcrZ9yoyJvTNjcVQ==", + "dev": true + }, + "babel-preset-jest": { + "version": "22.4.4", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.4.4.tgz", + "integrity": "sha512-+dxMtOFwnSYWfum0NaEc0O03oSdwBsjx4tMSChRDPGwu/4wSY6Q6ANW3wkjKpJzzguaovRs/DODcT4hbSN8yiA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^22.4.4", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", diff --git a/package.json b/package.json index 811ebf1db..4a7a0008f 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "babel-loader": "^8.0.2", "css-loader": "^1.0.0", "eslint": "^4.19.1", - "eslint-plugin-react": "^7.10.0", + "eslint-plugin-react": "^7.11.1", "express": "^4.16.3", "extract-text-webpack-plugin": "^4.0.0-beta.0", "html-webpack-plugin": "^3.2.0", diff --git a/src/lib/payload.js b/src/lib/payload.js index 189dead01..1bb3f2e4a 100644 --- a/src/lib/payload.js +++ b/src/lib/payload.js @@ -2,11 +2,8 @@ import routes from './routes/index.route'; import passport from 'passport'; import User from './models/user.model'; -// class Payload { -export function init(app, mongoose, options) { - // baseURL = options.baseURL; +export function init(app) { - // configure passport for Auth app.use(passport.initialize()); app.use(passport.session()); diff --git a/src/tests/api.spec.js b/src/tests/api.spec.js new file mode 100644 index 000000000..29c7ea0ab --- /dev/null +++ b/src/tests/api.spec.js @@ -0,0 +1,20 @@ +import request from 'supertest'; +import * as payload from '../index'; +import * as utils from './testUtils'; +import httpStatus from 'http-status'; + +describe('API tests', () => { + test('Mounts /health-check route', (done) => { + const expressApp = utils.getConfiguredExpress(); + payload.init(expressApp); + + let server = expressApp.listen(3000); + request(expressApp) + .get('/health-check') + .then(res => { + expect(res.statusCode).toEqual(httpStatus.OK); + server.close(); + done(); + }); + }); +}); diff --git a/src/tests/payload.spec.js b/src/tests/payload.spec.js new file mode 100644 index 000000000..599f64445 --- /dev/null +++ b/src/tests/payload.spec.js @@ -0,0 +1,10 @@ +import express from 'express'; +import * as payload from '../index'; + +describe('Basic Payload Tests', () => { + test('Instantiate Payload', () => { + const app = express(); + payload.init(app); + expect(payload).toBeDefined(); + }); +}); diff --git a/src/tests/payload.test.js b/src/tests/payload.test.js deleted file mode 100644 index 4e50e60ae..000000000 --- a/src/tests/payload.test.js +++ /dev/null @@ -1,80 +0,0 @@ -/* eslint-disable global-require */ - -import express from 'express'; -import mongoose from 'mongoose'; -import request from 'supertest'; -import { Payload } from '../'; -import * as utils from './testUtils'; - -const app = express(); - -function initBasicPayload() { - return new Payload({ - express: app, - mongoose: mongoose, - baseURL: 'localhost' - }); -} - -describe('Basic Payload Tests', () => { - test('Instantiate Payload', () => { - const payload = initBasicPayload(); - expect(payload).toBeDefined(); - }); -}); - -describe('API route tests', () => { - test('Mount /api route', (done) => { - const expressApp = utils.getConfiguredExpress(); - const payload = new Payload({ - express: expressApp, - mongoose: mongoose, - baseURL: 'localhost' - }); - - let server = expressApp.listen(3000); - request(expressApp).get('/api').then((response) => { - expect(response.statusCode).toEqual(200); - server.close(); - done(); - }); - }); - - test('Mount /api/testmodel GET route', (done) => { - const expressApp = utils.getConfiguredExpress(); - const payload = new Payload({ - express: expressApp, - mongoose: mongoose, - baseURL: 'localhost' - }); - - // File contains what a developer would write - require('./models/testModel')(payload); - - let server = expressApp.listen(3000); - request(expressApp).get('/api/testmodel').then((response) => { - expect(response.statusCode).toEqual(200); - server.close(); - done(); - }); - }); - - test('Mount /api/testmodel POST route', (done) => { - const expressApp = utils.getConfiguredExpress(); - const payload = new Payload({ - express: expressApp, - mongoose: mongoose, - baseURL: 'localhost' - }); - - // File contains what a developer would write - require('./models/testModel')(payload); - - let server = expressApp.listen(3000); - request(expressApp).post('/api/testmodel').then((response) => { - expect(response.statusCode).toEqual(201); - server.close(); - done(); - }); - }); -});