Fix tests and do some clean up
This commit is contained in:
28
README.md
28
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
|
||||
|
||||
10
demo/app.js
10
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}...`);
|
||||
|
||||
162
package-lock.json
generated
162
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
20
src/tests/api.spec.js
Normal file
20
src/tests/api.spec.js
Normal file
@@ -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();
|
||||
});
|
||||
});
|
||||
});
|
||||
10
src/tests/payload.spec.js
Normal file
10
src/tests/payload.spec.js
Normal file
@@ -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();
|
||||
});
|
||||
});
|
||||
@@ -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();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user