Comments (5)
Thanks for opening an issue, certainly testing is well under-documented so I'll try to explain the basics in this issue. I would not recommend using run
at all for your own tests; it's here for internal tests and definitely nowhere near stable. Instead, use some 3rd party testing library like supertest
:
// index.js - Main project file
const server = require('server');
const { get } = server.router;
// Notice that we export the server here for testing later on:
module.exports = server(
get('/user', () => ({ name: 'john' }))
);
Your test file (need to npm install supertest jest --save-dev
first):
// index.test.js - API testing file
const request = require('supertest');
// The promise exported from your index
const serverPromise = require('./index.js');
// This will be populated after the server has launched. You can call it
// anything you want; server, runtime, ctx, instance, etc. are all valid names
let server;
describe('user', () => {
// Populate it with the running instance when it's ready
beforeAll(async () => {
server = await serverPromise;
});
// Avoid leaving it hanging after all the tests have run
afterAll(async () => {
await server.close();
});
it('tests the user endpoint', async () => {
await request(server.app)
.get('/user')
.expect('Content-Type', /json/)
.expect('Content-Length', '15')
.expect(200);
});
});
Things become more difficult if you want to require()
it from different files because then it's launched multiple times with the same port (so it'll fail). I recommend a single entry point like the above for testing for the API itself.
from server.
I think you may need to import run
like this:
const run = require('server/test/run');
I found this in one of the test files.
from server.
I added this code as a working example:
https://github.com/franciscop/server/tree/master/examples/supertest
from server.
Improved docs for Cookies as well 😄
https://serverjs.io/documentation/reply/#cookie-
Please let me know if you have any further question/issue, @dpaschal7!
from server.
This seems to be fixed, or at least it's been answered. Please feel free to reopen if you still have an issue here or to create a new issue asking more questions. Cheers!
from server.
Related Issues (20)
- Improve the UI of the documentation site HOT 2
- throw new TypeError('argument res is required') HOT 2
- How to configure socket.io? HOT 5
- TypeScript HOT 1
- Handling file uploads with multipart/form-data POST requests HOT 6
- Upgrading Helmet to the next major version HOT 3
- How to configure https server ? HOT 2
- How to create, set a name and send a file dynamically create HOT 9
- Basic usage example in docs is incorrect HOT 2
- Bug method POST vs PUT is not working
- How integrat ApolloGraphql use serverjs HOT 1
- Any schedule for migrating to socket.io 4.x? HOT 6
- Heroku wrong IP HOT 2
- Add CORS package to the core HOT 1
- Change csurf to something maintained HOT 1
- Update formidable HOT 1
- [PSA] update to [email protected] for `rediss://` usage
- while trying post method throwing invalid csrfToken error - how to resolve this HOT 2
- Is it possible to enable pre-flight requests ? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from server.