Skip to content

Commit 474b390

Browse files
committed
test: mock console.error for proxy option tests and verify error logging
1 parent 0a181ee commit 474b390

1 file changed

Lines changed: 16 additions & 32 deletions

File tree

test/server/proxy-option.test.js

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ const proxyWithRouterAsObject = [
139139
describe("proxy option", () => {
140140
let proxyServer1;
141141
let proxyServer2;
142+
let consoleMock;
142143

143144
async function listenProxyServers() {
144145
const proxyApp1 = express();
@@ -834,16 +835,9 @@ describe("proxy option", () => {
834835
describe("should work and respect `logger` option", () => {
835836
let server;
836837
let req;
837-
let customLogProvider;
838838

839839
beforeAll(async () => {
840-
customLogProvider = {
841-
log: jest.fn(),
842-
debug: jest.fn(),
843-
info: jest.fn(),
844-
warn: jest.fn(),
845-
error: jest.fn(),
846-
};
840+
consoleMock = jest.spyOn(console, "error");
847841

848842
const compiler = webpack([config, config]);
849843

@@ -853,7 +847,7 @@ describe("proxy option", () => {
853847
{
854848
context: "/my-path",
855849
target: "http://unknown:1234",
856-
logger: customLogProvider,
850+
logger: console,
857851
},
858852
],
859853
port: port3,
@@ -869,6 +863,7 @@ describe("proxy option", () => {
869863
});
870864

871865
afterAll(async () => {
866+
consoleMock.mockRestore();
872867
await server.stop();
873868
await closeProxyServers();
874869
});
@@ -877,25 +872,17 @@ describe("proxy option", () => {
877872
it("respects a proxy option when a request path is matched", async () => {
878873
await req.get("/my-path");
879874

880-
expect(customLogProvider.error).toHaveBeenCalledTimes(1);
875+
expect(consoleMock).toHaveBeenCalledTimes(1);
881876
});
882877
});
883878
});
884879

885880
describe("should work and respect the `infrastructureLogging.level` option", () => {
886881
let server;
887882
let req;
888-
let customLogProvider;
883+
let loggerSpy;
889884

890885
beforeAll(async () => {
891-
customLogProvider = {
892-
log: jest.fn(),
893-
debug: jest.fn(),
894-
info: jest.fn(),
895-
warn: jest.fn(),
896-
error: jest.fn(),
897-
};
898-
899886
const compiler = webpack({
900887
...config,
901888
infrastructureLogging: { level: "error" },
@@ -907,14 +894,15 @@ describe("proxy option", () => {
907894
{
908895
context: "/my-path",
909896
target: "http://unknown:1234",
910-
logger: customLogProvider,
911897
},
912898
],
913899
port: port3,
914900
},
915901
compiler,
916902
);
917903

904+
loggerSpy = jest.spyOn(server.logger, "error");
905+
918906
await server.start();
919907

920908
await listenProxyServers();
@@ -923,6 +911,7 @@ describe("proxy option", () => {
923911
});
924912

925913
afterAll(async () => {
914+
loggerSpy.mockRestore();
926915
await server.stop();
927916
await closeProxyServers();
928917
});
@@ -931,25 +920,17 @@ describe("proxy option", () => {
931920
it("respects a proxy option when a request path is matched", async () => {
932921
await req.get("/my-path");
933922

934-
expect(customLogProvider.error).toHaveBeenCalledTimes(1);
923+
expect(loggerSpy).toHaveBeenCalledTimes(1);
935924
});
936925
});
937926
});
938927

939928
describe("should work and respect the `infrastructureLogging.level` option with `none` value", () => {
940929
let server;
941930
let req;
942-
let customLogProvider;
931+
let loggerSpy;
943932

944933
beforeAll(async () => {
945-
customLogProvider = {
946-
log: jest.fn(),
947-
debug: jest.fn(),
948-
info: jest.fn(),
949-
warn: jest.fn(),
950-
error: jest.fn(),
951-
};
952-
953934
const compiler = webpack({
954935
...config,
955936
infrastructureLogging: { level: "none" },
@@ -961,28 +942,31 @@ describe("proxy option", () => {
961942
{
962943
context: "/my-path",
963944
target: "http://unknown:1234",
964-
logger: customLogProvider,
965945
},
966946
],
967947
port: port3,
968948
},
969949
compiler,
970950
);
971951

952+
loggerSpy = jest.spyOn(server.logger, "error");
953+
972954
await server.start();
973955

974956
req = request(server.app);
975957
});
976958

977959
afterAll(async () => {
960+
loggerSpy.mockRestore();
978961
await server.stop();
979962
});
980963

981964
describe("target", () => {
982965
it("respects a proxy option when a request path is matched", async () => {
983966
await req.get("/my-path");
984967

985-
expect(customLogProvider.error).toHaveBeenCalledTimes(0);
968+
// Since infrastructureLogging.level is set to "none", no error logs should be produced
969+
expect(loggerSpy).toHaveBeenCalledTimes(0);
986970
});
987971
});
988972
});

0 commit comments

Comments
 (0)