diff --git a/index.js b/index.js index e77230014..8a3655b9a 100644 --- a/index.js +++ b/index.js @@ -34,4 +34,4 @@ app.get('/', (req, res) => res.render('index', title: 'Index' })); -app.listen(3000, () => console.log('Example app listening on http://localhost:3000')); \ No newline at end of file +app.listen(3000, () => console.log('Example app listening on http://localhost:3000')); diff --git a/payload/package-lock.json b/payload/package-lock.json index aa4fe01e1..129991792 100644 --- a/payload/package-lock.json +++ b/payload/package-lock.json @@ -1,5 +1,5 @@ { - "name": "payload", + "name": "payload-tester", "version": "1.0.0", "lockfileVersion": 1, "requires": true, @@ -1499,6 +1499,12 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cookiejar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "dev": true + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -2359,6 +2365,12 @@ "mime-types": "2.1.18" } }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", + "dev": true + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -7134,6 +7146,45 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "superagent": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.2.tgz", + "integrity": "sha512-gVH4QfYHcY3P0f/BZzavLreHW3T1v7hG9B+hpMQotGQqurOvhv87GcMCd6LWySmBuf+BDR44TQd0aISjVHLeNQ==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "cookiejar": "2.1.1", + "debug": "3.1.0", + "extend": "3.0.1", + "form-data": "2.3.2", + "formidable": "1.2.1", + "methods": "1.1.2", + "mime": "1.4.1", + "qs": "6.5.1", + "readable-stream": "2.3.6" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "supertest": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-3.0.0.tgz", + "integrity": "sha1-jUu2j9GDDuBwM7HFpamkAhyWUpY=", + "dev": true, + "requires": { + "methods": "1.1.2", + "superagent": "3.8.2" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", diff --git a/payload/package.json b/payload/package.json index a5ae59845..e7ee834d8 100644 --- a/payload/package.json +++ b/payload/package.json @@ -18,6 +18,7 @@ "devDependencies": { "eslint": "^4.19.1", "jest": "^22.4.3", - "nodemon": "^1.17.3" + "nodemon": "^1.17.3", + "supertest": "^3.0.0" } } diff --git a/payload/tests/payload.test.js b/payload/tests/payload.test.js index b6384bdae..4645bfe0f 100644 --- a/payload/tests/payload.test.js +++ b/payload/tests/payload.test.js @@ -1,7 +1,10 @@ +/* eslint-disable no-magic-numbers */ const express = require('express'); const app = express(); const mongoose = require('mongoose'); +const request = require('supertest'); + const Payload = require('../'); function initBasicPayload() { @@ -12,12 +15,36 @@ function initBasicPayload() { }); } +function getConfiguredExpress() { + let expressApp = express(); + expressApp.set('view engine', 'pug'); //TODO: Reactify + return expressApp; +} + describe('Basic Payload Tests', () => { test('Instantiate Payload', () => { const payload = initBasicPayload(); expect(payload).toBeDefined(); }); + test('Mount Admin view', (done) => { + const expressApp = getConfiguredExpress(); + const payload = new Payload({ + express: expressApp, + mongoose: mongoose, + baseURL: 'base123' + }); + + expressApp.set('views', payload.views); + let server = expressApp.listen(3000, () => { console.log('Example app listening on http://localhost:3000');}); + + request(expressApp).get('/payload/admin').then((response) => { + expect(response.statusCode).toEqual(200); + server.close(); + done(); + }); + }); + test('Create new collection', () => { const payload = initBasicPayload(); let collection = payload.newCollection('key');