Commit Graph

2734 Commits

Author SHA1 Message Date
Koen Vlaswinkel
644bea27ad Add retries of CLI integration tests
This will patch `jest-runner-vscode` to retry tests. This is a temporary
test to see if this will help with the flakiness of the CLI integration
tests.

The biggest problem with this is that it will launch multiple VSCode
instances on every retry:
- First try (not a retry): 1 instance
- Second try: 2 instances
- Third try: 3 instances
- etc.

I'm not sure why this is happening and can't really narrow it down to a
specific cause. Even if I change the `runVSCode` call for the retry by
a simple `cp.spawn` call, it still launches multiple instances.
2022-11-28 11:32:17 +01:00
Koen Vlaswinkel
68de9f09e4 Disable fail-fast for CLI integration tests 2022-11-25 18:37:15 +01:00
Koen Vlaswinkel
595b14cf30 Merge pull request #1797 from github/jest-migration/docs
Add documentation for running a single test
2022-11-25 14:33:15 +01:00
Koen Vlaswinkel
858a3268df Merge remote-tracking branch 'origin/main' into jest-migration/integration-tests 2022-11-25 13:42:02 +01:00
Koen Vlaswinkel
55408a7e0b Merge pull request #1792 from github/jest-migration/windows
Use `patch-package` to add Windows support
2022-11-25 13:40:29 +01:00
Koen Vlaswinkel
24a61d387d Add documentation for running a single test 2022-11-25 13:36:07 +01:00
Koen Vlaswinkel
927817f99d Add debugging support to jest-runner
This adds debugging support to jest-runner for the integration tests
when they are run from the `out` directory. Unfortunately, this removes
the ability to debug the non-integration tests, such as the pure tests.
2022-11-25 13:36:07 +01:00
Koen Vlaswinkel
e60ed32731 Merge pull request #1795 from github/jest-migration/ts-jest
Use ts-jest for running integration tests
2022-11-25 13:35:28 +01:00
Charis Kyriakou
003b9dcf2c Add launch configuration to run single unit test (#1796) 2022-11-25 12:24:40 +00:00
Koen Vlaswinkel
a23a8f78dd Use ts-jest for running integration tests
Instead of running the integration tests from the `out` directory, this
will run the integration tests from the `src` directory using `ts-jest`.

Unfortunately, we are not able to use TypeScript files for the
`jest-runner-vscode` configuration since `cosmiconfig` (the package that
handles the configuration loading for `jest-runner-vscode`) doesn't
support loading TypeScript files by default.
2022-11-25 13:06:03 +01:00
Shati Patel
f6613867d3 Bump CLI version to 2.11.4 for integration tests (#1794) 2022-11-25 11:40:28 +00:00
Koen Vlaswinkel
51425915d9 Use fs-extras and async methods for file manipulation 2022-11-25 11:40:56 +01:00
Koen Vlaswinkel
754cad3815 Merge pull request #1793 from github/jest-migration/debug
Add debugging support for Jest integration tests
2022-11-25 11:20:19 +01:00
Koen Vlaswinkel
430bcd0aa2 Increase timeout for legacy query server tests 2022-11-25 10:59:50 +01:00
Koen Vlaswinkel
4be69e858c Add debugging support for Jest integration tests
Since we are launching a completely different process for the extension
tests than the process that is launched by VSCode, we need to add some
special handling for the debugging.

This will let the extension host/VSCode expose a debugging port, which
VSCode will then connect to. This is "less desirable than letting the
bootloader do its thing", but a packaged VSCode application does not
allow using the bootloader (`NODE_OPTIONS`=`--require=...`). Therefore,
we have to fallback to this option.

See: 47c60558ec/src/configuration.ts (L405-L411)
2022-11-25 10:41:22 +01:00
Koen Vlaswinkel
9fc2c38970 Merge pull request #1790 from github/jest-migration/cleanup-mocha
Clean up Mocha, Sinon and Chai
2022-11-25 10:41:17 +01:00
Koen Vlaswinkel
aa5026f192 Use patch-package to add Windows support
This will apply the same change as the PR on `jest-runner-vscode` in
the local `node_modules` on every install, ensuring that we have
Windows support.
2022-11-25 10:11:19 +01:00
Koen Vlaswinkel
e55b8a366e Clean up Mocha, Sinon and Chai
This removes the Mocha, Sinon and Chai-related packages and removes
unused code from the test suite.
2022-11-24 17:24:43 +01:00
Koen Vlaswinkel
5841fbccd7 Merge pull request #1785 from github/jest-migration/cli-integration
Migrate CLI integration tests to Jest
2022-11-24 17:15:23 +01:00
Koen Vlaswinkel
925acbd36e Merge remote-tracking branch 'origin/jest-migration/integration-tests' into jest-migration/cli-integration 2022-11-24 17:02:33 +01:00
Charis Kyriakou
91ca9481eb Migrate minimal-workspace integration tests to Jest (#1786) 2022-11-24 16:01:20 +00:00
Koen Vlaswinkel
f830c23018 Fix variant analysis submission integration test
Apparently, we're not importing the same `config` file as is used by the
actual extension, so mocking methods in this file does not do anything.
However, we can mock the `vscode` module, so we can use this for
returning different values in the configuration.

We also need to mock the authentication session since we don't have one.
2022-11-24 13:38:40 +01:00
Koen Vlaswinkel
52e2a63828 Fix missed toHaveLength on object 2022-11-24 13:21:52 +01:00
Koen Vlaswinkel
3f76ad6eb8 Fix variant analysis and remote queries tests 2022-11-24 13:10:42 +01:00
Koen Vlaswinkel
1c0d6b991a Enable restoreMocks Jest configuration option
This will ensure all mocks are restored after every test. This required
a significant amount of changes in the tests since `jest.spyOn` now
needs to be called in `beforeEach`, rather than in the `describe` block.
2022-11-24 12:27:18 +01:00
Koen Vlaswinkel
68d867ef76 Fix remote queries manager tests
There were some things that were breaking due to version checks. Since
we aren't testing on these CLI versions (2.7.2 and 2.7.4 or older)
anymore, we can remove these checks and simplify the tests.
2022-11-24 11:36:03 +01:00
Koen Vlaswinkel
e04f941cee Fix spy on undefined variable 2022-11-24 10:44:08 +01:00
Koen Vlaswinkel
558eb19c97 Remove unnecessary calls to mockReset 2022-11-24 10:24:48 +01:00
Koen Vlaswinkel
31b64d2f73 Fix incorrect to.contain transformation
For `to.contain`, `jest-codemods` seems to have converted these to be
`expect.arrayContaining`, even for strings. This will make the correct
change for strings.
2022-11-24 10:23:14 +01:00
Koen Vlaswinkel
d02a5cd3dc Do not use toHaveLength for objects
Mocha supported `.to.have.length` for objects, but Jest only allows
`toHaveLength` on objects which have a length property (such as arrays).
2022-11-24 10:23:14 +01:00
Koen Vlaswinkel
e895078913 Do not use .skip from within tests
Jest does not support skipping tests when the test has already started
(which could also be in a before hook), so we need to manually return
from the tests when the CLI version does not support a tested feature.
2022-11-24 10:23:14 +01:00
Koen Vlaswinkel
1a10fd35f1 Remove calls to fail
Instead of calling `fail`, we can just let the error be caught by Jest,
which will automatically fail the tests. For other instances where we're
calling `fail` in case an error was not thrown, we will instead use
`.rejects.toThrow`.
2022-11-24 10:23:13 +01:00
Koen Vlaswinkel
614785fb7a Do not dispose the extension after every test file 2022-11-24 10:22:47 +01:00
Koen Vlaswinkel
4f8d68d8a2 Always activate the extension before running tests 2022-11-24 10:22:47 +01:00
Koen Vlaswinkel
dc6de0f8a8 Fix async describes 2022-11-24 10:22:47 +01:00
Koen Vlaswinkel
e5967c3851 First pass on converting cli-integration tests to Jest
This is a first pass on converting the cli-integration tests to Jest. It
uses a custom Jest runner (based on the jest-runner-vscode) to install
required extensions. It will also necessary to move some code for
installating the CLI to ensure it was possible to install the CLI from
outside VSCode.

Most of the conversion has been done by `npx jest-codemods`, but all
migration of Sinon has been done manually.
2022-11-24 10:22:45 +01:00
Koen Vlaswinkel
c31635fe90 Merge pull request #1782 from github/jest-migration/no-workspace
Migrate no-workspace integration tests to Jest
2022-11-24 10:21:50 +01:00
Koen Vlaswinkel
e26e1113be Remove calls to fail
Instead of calling `fail` and catching an error, this will use the
`rejects.toThrow` assertion to check that a Promise rejects with a
specific error.
2022-11-24 10:04:37 +01:00
Koen Vlaswinkel
01f6576e95 Clarify comment for activation test 2022-11-24 09:58:10 +01:00
Koen Vlaswinkel
347d234906 Use projects arg to run the Jest tests 2022-11-24 09:56:08 +01:00
Koen Vlaswinkel
043a7b1039 Use resetMocks option to reset mocks before every test 2022-11-24 09:55:48 +01:00
Koen Vlaswinkel
b10cb7771e Merge pull request #1784 from github/koesie10/move-filter-sort
Move filter and sort tests to pure tests
2022-11-23 16:39:29 +01:00
Koen Vlaswinkel
80b2a43be9 Move filter and sort tests to pure tests
The filter and sort tests were located inside the React tests since they
were already using Jest. Now that the pure tests have been switched to
Jest, these tests can finally be moved to the "normal" pure tests.
2022-11-23 14:06:57 +01:00
Koen Vlaswinkel
a985bcb872 Use different method of running tests 2022-11-23 11:23:15 +01:00
Koen Vlaswinkel
90dd97fbc0 Use correct jest-runner-vscode for no-workspace 2022-11-23 11:23:15 +01:00
Koen Vlaswinkel
0296db8b25 Move jest-runner-vscode config to correct location 2022-11-23 11:23:15 +01:00
Koen Vlaswinkel
65bb61b530 Set timeouts on tests correctly
The timeouts need to be set either on a per-file basis, or per test by
using the parameter in `it`. Since we have both Mocha and Jest types, we
need to declare in the test file which one we're using.
2022-11-23 11:23:15 +01:00
Koen Vlaswinkel
3da0034953 Do not run integration tests in parallel
This results in parallel downloads of VSCode, which is not supported.
2022-11-23 11:23:15 +01:00
Koen Vlaswinkel
a0ab34bf55 Migrate no-workspace integration tests to Jest
This migrates all no-workspace VSCode integration tests to Jest by
running `npx jest-codemods`, followed by manual fixes (mostly for Sinon
and Proxyquire).
2022-11-23 11:23:13 +01:00
Koen Vlaswinkel
cc869daf05 Merge pull request #1783 from github/koesie10/split-workflow-files
Split workflow run into more jobs
2022-11-23 10:59:54 +01:00