David Lozzi
David Lozzi

Reputation: 15875

Basic jest test on a 1 function file gets 0% coverage

I have 2 files with 1 function in it. My test is just as simple, see below:

doc.js

export function createSynthId(doc) {
  const synthId = `${doc.attachmentId}-${doc.materialId}-${doc.fileName}-${doc.title}-${doc.materialURL}`;
  return synthId;
}

doc.test.js

import { createSynthId } from './doc';

describe('doc', () => {
  it('create synthetic id', () => {
    expect(createSynthId(global.doc)).toEqual('987654-123456-File Name.pptx-undefined-');
  });

  it('create synthetic id', () => {
    expect(createSynthId({})).toEqual('undefined-undefined-undefined-undefined-undefined');
  });
});

My second file is virtually the same, just a larger function. Both tests pass, but coverage is being reported at 0% for Statements, Functions, and Lines, but 100% for Branches. The coverage report is showing all the lines red as well.

enter image description here

We have many similar files and they all work. What am I missing here?

UPDATE

I added a temp function to doc.js

export const makeTestsHappy = () => {
  console.log(CONFIG);
};

adding to doc.test.js

  it('does more', () => {
    makeTestsHappy();
  });

and when I try to test that, I get the error TypeError: (0 , _doc.makeTestsHappy) is not a function

Upvotes: 0

Views: 1176

Answers (2)

David Lozzi
David Lozzi

Reputation: 15875

Dummy over here was mocking the file I was testing. I forgot to jest.unmock('/doc') It immediately started working when I unlocked. Thanks all for your patience :D

Upvotes: 1

Vinícius Alonso
Vinícius Alonso

Reputation: 151

Try to rename your test file from doc.test.js to doc.spec.js. You are using the BDD syntax and the correct name should include spec.

Upvotes: 0

Related Questions