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

"Expected 1 arguments, but got 2." except with mysterious workarounds #65

Open
dskloetd opened this issue Feb 23, 2023 · 3 comments
Open

Comments

@dskloetd
Copy link

Bug

  • package version: 1.1.3
  • node version: 16.16.0
  • npm (or yarn) version: npm 8.11.0

What I tried initially

Initially the only things I did before using messages in expect were

  1. npm install --save-dev jest-expect-message
  2. Add import "jest-expect-message"; to jest-setup.ts.

This worked initially but after change the test and running the test again, I started getting:

> @dfinity/[email protected] test
> TZ=UTC jest "feature-flags.store.spec.ts"

 FAIL  src/tests/lib/stores/feature-flags.store.spec.ts
  ● Test suite failed to run

    src/tests/lib/stores/feature-flags.store.spec.ts:24:9 - error TS2554: Expected 1 arguments, but got 2.

    24         `FeatureFlag ${feature} should be exported from feature-flags.store.ts`
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.076 s
Ran all test suites matching /feature-flags.store.spec.ts/i.

What didn't work

I tried of all the following but the issue remained:

  1. Add "jest-expect-message", to setupFilesAfterEnv: in jest.config.cjs.
  2. Add "files": ["node_modules/jest-expect-message/types/index.d.ts"], to tsconfig.json
  3. Add "jest/valid-expect": "off", in rules: in .eslintrc.cjs.

What worked

  1. After running jest --clearCache the issue would go away, but return after making some changes and running the test again.
  2. npm install --save-dev @types/jest-expect-message made the issue go away consistently. However, the package is deprecated and when I look inside the package it looks basically empty. So I don't understand how this can have an effect.
  3. Using import "jest-expect-message"; in the test file itself rather than in jest-setup.ts works. Is this the intended way to use it?

Any insight into what might be going on would be greatly appreciated.

If you want, you can see our entire setup at dfinity/nns-dapp@main...kloet/jem3

@iessa-pragg-ctct
Copy link

I had some luck by adding the package to my tsconfig types.

{
  "compilerOptions": {
    "types": ["jest", "jest-expect-message"]
  }
}

@mrazauskas
Copy link

There is an alternative to explicitly declared "types". You can declare jest-expect-message as an @types/* package in package.json:

{
  "devDependencies": {
    "@types/jest-expect-message": "npm:jest-expect-message@*",
  }
}

Run yarn install after adding the line. All will work as if you have @types/jest-expect-message installed, but the typings will come from jest-expect-message package.

@edeesis
Copy link

edeesis commented Mar 1, 2024

The suggestion from @mrazauskas worked for me. I was also able to remove the files key from tsconfig.json. Maybe a documentation update is in order?

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

No branches or pull requests

4 participants