Is there a way to get a proper error message?
when i do
$npm test
and I intentionally break my code(cough cough remove a line of code) I get this message
src/redux/drivers/driver.saga.spec.js
Test suite failed to run
"messageParent" can only be used inside a worker
at messageParent (node_modules/jest-worker/build/workers/messageParent.js:46:11)
I believe this is a meaningless error message and it would be nice to have something meaningful (=.
Here's my test
describe("DriverSocketFlow failed REASON:\n", () => {
let socket;
beforeEach(() => {
socket = new MockedSocket();
io.mockReturnValue(socket);
});
afterEach(() => {
jest.restoreAllMocks();
});
const mockGeneratorPayload = { payload: { name: "Royal Palms" } };
const generator = DriverSocketFlow(mockGeneratorPayload);
test("Checking if DriverSocketFlow was called with it's methods and disconnected gracefully", () => {
expect(generator.next(socket).value).toEqual(
call(connect, mockGeneratorPayload.payload.name)
);
expect(generator.next(socket).value).toEqual(
call(socketbug, mockGeneratorPayload.payload.name)
);
//disconnect gracefully
expect(generator.next(socket).value).toEqual(
fork(Read_Emit_Or_Write_Emit, socket)
);
expect(generator.next().value).toEqual(
take(DriversActionTypes.DRIVERS_SOCKET_OFF)
);
expect(generator.next(socket).value).toEqual(call(disconnect, socket));
expect(generator.next(socket).value).toEqual(call(disconnect, socket));
expect(generator.next().value).toEqual(cancel());
});
});
It should say
DriverSocketFlow failed REASON:
Checking if DriverSocketFlow generator function was called and disconnected gracefully
Thanks! for looking!
.... So i think i figured it out! here's my new test
test("1. Connected to the socket successfully", () => {
expect(generator.next(socket).value).toEqual(
call(Connect_To_Socket, mockGeneratorPayload.payload.name)
);
expect(generator.next(socket).value).toEqual(
call(socketbug, mockGeneratorPayload.payload.name)
);
});
test("2. Read_Emit_Or_Write_Emit generator function operations for socket.on and emit", () => {
expect(generator.next(socket).value.payload.fn).toEqual(
fork(Read_Emit_Or_Write_Emit, socket).payload.fn
);
});
but i think it's bug within npm test Don't know why it does it, but if you stop watch in npm test within package.json script tag and restart the test...It should work.....
"scripts": {
"test": "react-scripts test --watchAll=false",
},
and also....! don't know if this step helped but i added jest.config.js within the root directory and removed it then all of a sudden it worked... " <- cough cough it probably doesn't do anything just keep restarting it ¯_(ツ)_/¯.... it worked for me"
Here's the full code