Comments (4)
I wrote test-listen
to make the job of passing a http server (as the one that could be returned by serve(async (req, res) => {})
from micro), and make it listen on a random ephemeral port.
Using ava:
import test from 'ava';
import listen from 'test-listen';
test('it works', async t => {
// initialize `srv` using `serve` from `micro` first!
const url = await listen(srv);
t.ok(/http:\/\/localhost:\d+/.test(url));
const data = await request(url);
t.same('1', data);
});
Example:
https://github.com/zeit/test-listen/blob/master/test/index.js#L9
from micro.
Tnx! But than I would have to rewrite my code to fit the test...that's not what you meant, right?
Your example shows a simple export:
import {send} from 'micro-core'
export default async function(req, res) {
send(res, 200, 'Ready!')
}
Which is served using the micro cli. So why use the micro cli at all if we have to write tests that consume serve
'd functions?
I am disliking the convenience abstraction more and more...it obfuscates stuff and does not educate people, and it leads to maintenance you don't want
Why not just put out a great manual/stack on how to set it up without micro?
On 18 mei 2016, at 18:50, Guillermo Rauch [email protected] wrote:
I wrote test-listen to make the job of passing a http server (as the one that could be returned by serve(async (req, res) => {}) from micro), and make it listen on a random ephemeral port.
Using ava:
import test from 'ava';
import listen from 'test-listen';test('it works', async t => {
// initializesrv
usingserve
frommicro
first!
const url = await listen(srv);
t.ok(/http://localhost:\d+/.test(url));
const data = await request(url);
t.same('1', data);
});
Example:
https://github.com/zeit/test-listen/blob/master/test/index.js#L9 https://github.com/zeit/test-listen/blob/master/test/index.js#L9
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub #36 (comment)
from micro.
Nevermind, I figured it out...I can just start it with serve(listen(...
in the test itself...
would be nice to have it in the readme tho ;)
from micro.
@Morriz I agree it would be nice. Also having a complete project example repository with tests.
from micro.
Related Issues (20)
- S
- There is a mistake in the `Testing` session of README.md
- Account Field Review
- Support native esm modules. HOT 10
- npm package is out of date HOT 10
- Add ESLint and move to TypeScript HOT 2
- 9.4.0 release has a breaking change HOT 2
- Version 9.4.1 Breaks @isomorphic-git/cors-proxy HOT 2
- v9.4.1 breaks in nodejs12 especially node:12-alpine HOT 8
- v9.4.1 bin/micro.js: const server = new http.Server(serve(module)); HOT 4
- 9.4.1 - Wrong type for serve function HOT 2
- NPM registry incorrect? HOT 1
- Version 9.4.1 blocks requests on FreeBSD and macOS HOT 4
- v10 broken on windows
- More doucments? HOT 1
- Error: listen EACCES: permission denied 127.0.0.1 HOT 1
- Port binding is not working and multiple endpoint is broken
- Access to XMLHttpRequest at 'https://project_name.directus.app/items/SHIFTS_FLEXERS' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
- cess to XMLHttpRequest at 'http://localhost:8080/api/payment/orders' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. xhr.js:210
- await buffer(req) hangs forever, doesn't finish HOT 1
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 micro.