Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openapi-framework: Fix dynamic import to work with jest (fixes #909) #908

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

coryasilva
Copy link

@coryasilva coryasilva commented Sep 10, 2024

When using jest this code gets transpiled to require and the file URL syntax of the import is not supported and breaks the testing environment. This change only uses file URL import syntax on windows machines. This fixes our tests and is still supported on linux and mac operating systems.

I think windows is definitely in the minority here and we should not optimize for it. Furthermore, I believe using a UNC path would be a better solution outright but I cannot test because I don't have a window machine at hand.

Why not just use jest's --experimental-vm-modules flag? Glad you asked. Because of this jest bug which is caused by this node bug which is ultimately caused by this v8 bug

Note: This checklist isn't meant to show up on the actual Pull Request (PR). It is added here to make you aware of items our maintainers will look for when reviewing your PR. If your PR is missing any of these items it will be rejected! Please delete this message and the following checklist and replace it with your own message as you see fit.

  • I only have 1 commit.
  • My commit is prefixed with the relevant package (e.g. express-openapi: fixing something) Note: You can use the bin/commit script to automate this.
  • I have added tests. (No, should be covered by existing regression tests)
  • I'm using the latest code from the master branch and there are no conflicts on my branch.
  • I have added a suffix to my commit message that will close any existing issue my PR addresses (e.g. openapi-jsonschema-parameters: Adding examples to the validation keywords (fixes #455)).
  • My tests pass locally.
  • I have run linting against my code.

When using jest this code gets transpiled to `require` and the file URL syntax of the import is not supported and breaks the testing environment.  This change only uses file URL import syntax on windows machines.  This fixes our tests and is still supported on linux and mac operating systems.

I think windows is definitely in the minority here and we should not optimize for it.  Furthermore, I believe using a UNC path would be a better solution outright but I cannot test because I don't have a window machine at hand.

Why not just use jest's `--experimental-vm-modules` flag? Glad you asked.  Because of this [jest bug](jestjs/jest#11434 (comment)) which is caused by this [node bug](nodejs/node#37648) which is ultimately caused by this [v8 bug](https://issues.chromium.org/issues/40784051)
@coryasilva coryasilva changed the title Fix dynamic import to work with jest openapi-framework: Fix dynamic import to work with jest Sep 10, 2024
@coryasilva coryasilva changed the title openapi-framework: Fix dynamic import to work with jest openapi-framework: Fix dynamic import to work with jest (fixes #909) Sep 10, 2024
@amp5208
Copy link

amp5208 commented Oct 2, 2024

confirmed, this is an issue currently that arises when trying to integrate express-openapi into backstage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants