use fastify for test server
This commit is contained in:
parent
45340d6a2c
commit
ae8738de11
@ -31,11 +31,11 @@
|
|||||||
"@rollup/plugin-node-resolve": "7.1.1",
|
"@rollup/plugin-node-resolve": "7.1.1",
|
||||||
"ansi-regex": "5.0.0",
|
"ansi-regex": "5.0.0",
|
||||||
"colorette": "1.1.0",
|
"colorette": "1.1.0",
|
||||||
"create-test-server": "3.0.1",
|
|
||||||
"del": "5.1.0",
|
"del": "5.1.0",
|
||||||
"eslint": "6.8.0",
|
"eslint": "6.8.0",
|
||||||
"eslint-config-silverwind": "10.0.1",
|
"eslint-config-silverwind": "10.0.1",
|
||||||
"execa": "4.0.0",
|
"execa": "4.0.0",
|
||||||
|
"fastify": "2.12.1",
|
||||||
"hosted-git-info": "3.0.4",
|
"hosted-git-info": "3.0.4",
|
||||||
"jest": "25.1.0",
|
"jest": "25.1.0",
|
||||||
"make-fetch-happen": "8.0.4",
|
"make-fetch-happen": "8.0.4",
|
||||||
|
31
test.js
31
test.js
@ -1,13 +1,14 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const createTestServer = require("create-test-server");
|
|
||||||
const del = require("del");
|
const del = require("del");
|
||||||
const execa = require("execa");
|
const execa = require("execa");
|
||||||
|
const fastify = require("fastify");
|
||||||
const tempy = require("tempy");
|
const tempy = require("tempy");
|
||||||
|
const {bin} = require("./package.json");
|
||||||
const {join} = require("path");
|
const {join} = require("path");
|
||||||
const {test, expect, beforeAll, afterAll} = global;
|
const {test, expect, beforeAll, afterAll} = global;
|
||||||
const {writeFile, readFile} = require("fs").promises;
|
const {writeFile, readFile} = require("fs").promises;
|
||||||
const {bin} = require("./package.json");
|
const {promisify} = require("util");
|
||||||
|
|
||||||
const packageJson = require("./fixtures/test.json");
|
const packageJson = require("./fixtures/test.json");
|
||||||
const testDir = tempy.directory();
|
const testDir = tempy.directory();
|
||||||
@ -19,20 +20,20 @@ const dependencyTypes = [
|
|||||||
"optionalDependencies",
|
"optionalDependencies",
|
||||||
];
|
];
|
||||||
|
|
||||||
const testPackages = [];
|
const testPackages = new Set();
|
||||||
for (const dependencyType of dependencyTypes) {
|
for (const dependencyType of dependencyTypes) {
|
||||||
for (const name of Object.keys(packageJson[dependencyType] || [])) {
|
for (const name of Object.keys(packageJson[dependencyType] || [])) {
|
||||||
testPackages.push(name);
|
testPackages.add(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let npmServer, githubServer, githubApiUrl;
|
let npmServer, githubServer, githubUrl, npmUrl;
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
let commits, tags;
|
let commits, tags;
|
||||||
|
|
||||||
[npmServer, githubServer, commits, tags] = await Promise.all([
|
[npmServer, githubServer, commits, tags] = await Promise.all([
|
||||||
createTestServer(),
|
fastify(),
|
||||||
createTestServer(),
|
fastify(),
|
||||||
readFile(join(__dirname, "fixtures/github/updates-commits.json")),
|
readFile(join(__dirname, "fixtures/github/updates-commits.json")),
|
||||||
readFile(join(__dirname, "fixtures/github/updates-tags.json"))
|
readFile(join(__dirname, "fixtures/github/updates-tags.json"))
|
||||||
]);
|
]);
|
||||||
@ -40,14 +41,18 @@ beforeAll(async () => {
|
|||||||
for (const packageName of testPackages) {
|
for (const packageName of testPackages) {
|
||||||
const name = packageName.replace(/\//g, "%2f");
|
const name = packageName.replace(/\//g, "%2f");
|
||||||
const path = join(__dirname, `fixtures/npm/${name}.json`);
|
const path = join(__dirname, `fixtures/npm/${name}.json`);
|
||||||
npmServer.get(`/${name}`, await readFile(path));
|
npmServer.get(`/${name}`, async (_, res) => res.send(await readFile(path)));
|
||||||
}
|
}
|
||||||
|
|
||||||
githubServer.get("/repos/silverwind/updates/commits", commits);
|
githubServer.get("/repos/silverwind/updates/commits", (_, res) => res.send(commits));
|
||||||
githubServer.get("/repos/silverwind/updates/git/refs/tags", tags);
|
githubServer.get("/repos/silverwind/updates/git/refs/tags", (_, res) => res.send(tags));
|
||||||
|
|
||||||
githubApiUrl = githubServer.sslUrl;
|
[githubUrl, npmUrl] = await Promise.all([
|
||||||
await writeFile(join(testDir, ".npmrc"), `registry=${npmServer.sslUrl}`); // Fake registry
|
promisify(githubServer.listen).bind(githubServer)(0),
|
||||||
|
promisify(npmServer.listen).bind(npmServer)(0),
|
||||||
|
]);
|
||||||
|
|
||||||
|
await writeFile(join(testDir, ".npmrc"), `registry=${npmUrl}`); // Fake registry
|
||||||
await writeFile(join(testDir, "package.json"), JSON.stringify(packageJson, null, 2)); // Copy fixture
|
await writeFile(join(testDir, "package.json"), JSON.stringify(packageJson, null, 2)); // Copy fixture
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -61,7 +66,7 @@ afterAll(async () => {
|
|||||||
|
|
||||||
function makeTest(args, expected) {
|
function makeTest(args, expected) {
|
||||||
return async () => {
|
return async () => {
|
||||||
const argsArr = [...args.split(/\s+/), "-G", githubApiUrl];
|
const argsArr = [...args.split(/\s+/), "-G", githubUrl];
|
||||||
const {stdout} = await execa(join(__dirname, bin), argsArr, {cwd: testDir});
|
const {stdout} = await execa(join(__dirname, bin), argsArr, {cwd: testDir});
|
||||||
const {results} = JSON.parse(stdout);
|
const {results} = JSON.parse(stdout);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user