Hi guys. Imagine I have tsconfig.json like
{
"compilerOptions": {"...whatever"},
"includes": [
"src/**/*"
]
}
and i have constant enum in src/data.d.ts
declare const enum Foo {
Bar = 1,
}
then simply src/index.ts
export const Bar = Foo.Bar;
tsc's output for index.ts is exports.Bar = 1 /* Bar */; but in indexSpec.tsx
import { Bar } from "./";
describe("Bar", () => {
it("is defined", () => {
expect(Bar).toBeDefined();
});
});
I've got ReferenceError: Foo is not defined. Is it possible to make this work?
Would it be possible for you to create a small repo that can reproduce this issue?
Please check tsc and npm t in the repo above @kulshekhar
I just browsed through the linked repo. Isn't this more of a Typescript issue than something that's ts-jest specific?
Can be. I'll take a closer look during this week. Let's keep it open
@kulshekhar you right, this is default behaviour. So It shouldn't substitute constant enums even it it's <reference />d or defined in the same file
It's not clear whether there was a workaround for this or just SOL?
I'm consuming a third party library that exports constant enums, same result TypeError: Cannot read property 'X' of undefined because they are not inlined and no runtime code for them exists.
@jayphelps in the linked repo, if the enum is exported and imported, it works fine. Is that possible in your case? A tiny repo with your issue would be the best way to see if we can get this working
@r00ger can this get added to the readme? It's non obvious behaviour and it seems a lot of people spend time searching for the cause.
@rikkit I'm a bit hesitant because this doesn't seem to be a ts-jest issue. On the other hand, I see the point in adding a note if there are a lot of people running into this issue.
Any PRs which update the README accordingly are welcome
Most helpful comment
@rikkit I'm a bit hesitant because this doesn't seem to be a ts-jest issue. On the other hand, I see the point in adding a note if there are a lot of people running into this issue.
Any PRs which update the README accordingly are welcome