Skip to content
This repository was archived by the owner on Mar 28, 2022. It is now read-only.

Commit 5b8bbc7

Browse files
committed
test(e2e): Add E2E tests
1 parent b252557 commit 5b8bbc7

10 files changed

Lines changed: 128 additions & 16 deletions

jest.e2e.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module.exports = {
66
clearMocks: true,
77

88
testMatch: ["<rootDir>/test/e2e/**/*.spec.js"],
9-
// testMatch: ["<rootDir>/test/e2e/**/alerts-api.spec.js"],
9+
// testMatch: ["<rootDir>/test/e2e/**/stop-plugin.spec.js"],
1010

1111
// Indicates whether the coverage information should be collected while executing the test
1212
collectCoverage: false,

test/e2e/about-api.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ describe("about api", () => {
1717
server = await startServer("web-tutorial");
1818
});
1919

20-
afterAll(() => {
21-
stopServer(server);
20+
afterAll(async () => {
21+
await stopServer(server);
2222
});
2323

2424
describe("get /", () => {

test/e2e/alerts-api.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ describe("alerts api", () => {
8989
expect(response.error.name).toEqual("ReferenceError");
9090
expect(response.error.message).toEqual("FOO is not defined");
9191
expect(response.error.stack).toEqual(
92-
expect.stringContaining("test/e2e/fixtures/files-watch/fixtures/users.js:1:18")
92+
expect.stringContaining("test/e2e/fixtures/files-watch/fixtures/users.js:2:18")
9393
);
9494
});
9595
});

test/e2e/behaviors-api.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ describe("behaviors api", () => {
1616
server = await startServer("web-tutorial");
1717
});
1818

19-
afterAll(() => {
20-
stopServer(server);
19+
afterAll(async () => {
20+
await stopServer(server);
2121
});
2222

2323
describe("get /", () => {

test/e2e/change-behavior.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ describe("API for changing current behavior", () => {
1717
server = await startServer("web-tutorial-json");
1818
});
1919

20-
afterAll(() => {
21-
stopServer(server);
20+
afterAll(async () => {
21+
await stopServer(server);
2222
});
2323

2424
describe("When started", () => {

test/e2e/deprecated-change-behavior.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ describe("deprecated API for changing current behavior", () => {
2323
server = await startServer();
2424
});
2525

26-
afterAll(() => {
27-
stopServer(server);
26+
afterAll(async () => {
27+
await stopServer(server);
2828
});
2929

3030
describe("When started", () => {

test/e2e/fixtures-api.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ describe("alerts api", () => {
1616
server = await startServer("web-tutorial");
1717
});
1818

19-
afterAll(() => {
20-
stopServer(server);
19+
afterAll(async () => {
20+
await stopServer(server);
2121
});
2222

2323
describe("get /", () => {

test/e2e/plugin-options.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ describe("plugin options", () => {
2828
});
2929
});
3030

31-
afterAll(() => {
32-
stopServer(server);
31+
afterAll(async () => {
32+
await stopServer(server);
3333
});
3434

3535
it("should disable deprecated behaviors api path", async () => {

test/e2e/settings-api.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ describe("settings api", () => {
2323
server = await startServer("web-tutorial");
2424
});
2525

26-
afterAll(() => {
27-
stopServer(server);
26+
afterAll(async () => {
27+
await stopServer(server);
2828
});
2929

3030
describe("get", () => {

test/e2e/stop-plugin.spec.js

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/*
2+
Copyright 2020 Javier Brea
3+
4+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
5+
6+
http://www.apache.org/licenses/LICENSE-2.0
7+
8+
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
9+
*/
10+
11+
const { startServer, stopServer, request, fixturesFolder, wait } = require("./support/utils");
12+
13+
describe("stop plugin", () => {
14+
let server;
15+
beforeAll(async () => {
16+
server = await startServer("web-tutorial");
17+
});
18+
19+
afterAll(async () => {
20+
await stopServer(server);
21+
});
22+
23+
describe("when started", () => {
24+
it("should return current settings", async () => {
25+
const response = await request("/admin/settings");
26+
expect(response).toEqual({
27+
behavior: "standard",
28+
path: fixturesFolder("web-tutorial"),
29+
delay: 0,
30+
host: "0.0.0.0",
31+
port: 3100,
32+
watch: false,
33+
log: "silly",
34+
adminApiPath: "/admin",
35+
adminApiDeprecatedPaths: true,
36+
});
37+
});
38+
});
39+
40+
describe("when stopped", () => {
41+
it("should respond not found when requesting setting", async () => {
42+
await server._stopPlugins();
43+
const response = await request("/admin/settings", {
44+
resolveWithFullResponse: true,
45+
simple: false,
46+
});
47+
expect(response.statusCode).toEqual(404);
48+
});
49+
50+
it("should respond to mocks requests", async () => {
51+
await server._stopPlugins();
52+
const response = await request("/api/users");
53+
expect(response).toEqual([
54+
{
55+
id: 1,
56+
name: "John Doe",
57+
},
58+
{
59+
id: 2,
60+
name: "Jane Doe",
61+
},
62+
]);
63+
});
64+
});
65+
66+
describe("when behavior is changed", () => {
67+
it("should respond with new behavior", async () => {
68+
server.settings.set("behavior", "user2");
69+
await wait(1000);
70+
const response = await request("/api/users/2");
71+
expect(response).toEqual({
72+
id: 2,
73+
name: "Jane Doe",
74+
});
75+
});
76+
77+
it("should have not started the plugin", async () => {
78+
await server._stopPlugins();
79+
const response = await request("/admin/settings", {
80+
resolveWithFullResponse: true,
81+
simple: false,
82+
});
83+
expect(response.statusCode).toEqual(404);
84+
});
85+
});
86+
87+
describe("when plugins are started", () => {
88+
it("should respond with same behavior", async () => {
89+
await server._startPlugins();
90+
const response = await request("/api/users/2");
91+
expect(response).toEqual({
92+
id: 2,
93+
name: "Jane Doe",
94+
});
95+
});
96+
97+
it("should have started the plugin", async () => {
98+
const response = await request("/admin/settings");
99+
expect(response).toEqual({
100+
behavior: "user2",
101+
path: fixturesFolder("web-tutorial"),
102+
delay: 0,
103+
host: "0.0.0.0",
104+
port: 3100,
105+
watch: false,
106+
log: "silly",
107+
adminApiPath: "/admin",
108+
adminApiDeprecatedPaths: true,
109+
});
110+
});
111+
});
112+
});

0 commit comments

Comments
 (0)