Commit Graph

18 Commits

Author SHA1 Message Date
Asher
f2fa7701a9
Centralize credential handling
My thinking is that this may reduce the cognitive overhead for
developers writing new test suites.

This also allows us to perform different setup steps (like ensuring the
editor is visible when authenticated).
2021-06-29 12:06:45 -05:00
Asher
da4de439e0
Spawn a code-server instance for each test suite
This uses the current dev build by default but can be overidden with
CODE_SERVER_TEST_ENTRY (for example to test a release or some other
version).

Each instance has a separate state directory. This should make
parallelization work.

This also means you are no longer required to specify the password and
address yourself (or the extension directory once we add a test
extension). `yarn test:e2e` should just work as-is.

Lastly, it means the tests are no longer subject to yarn watch randomly
restarting.
2021-06-29 12:06:38 -05:00
Asher
ba0364a522
Run each e2e test in a new workspace
The workspaces also have settings to prevent the welcome page from
appearing.
2021-06-29 12:03:37 -05:00
Max Schmitt
dbb34ad710 chore: upgrade to Playwright 1.12 with its new test-runner 2021-06-10 15:09:38 +02:00
Asher
e8443e2602
Fix helpers not working in e2e tests
It errors that jest is not defined so put it behind a function instead
of immediately creating the mock (this is probably a better pattern
anyway).

The constant tests had to be reworked a little. Since the logger mock is
hoisted it runs before createLoggerMock is imported. I moved it into a
beforeAll which means the require call also needed to be moved
there (since we need to mock the logger before requiring the constants
or it'll pull the non-mocked logger).

This means getPackageJson needs to be a let and assigned afterward. To
avoid having to define a type for getPackageJson I just added a let var
set to the type of the imported constants file and modified the other
areas to use the same paradigm.

I also replaced some hardcoded strings with the mocked package.json
object.
2021-05-06 15:01:35 -05:00
Asher
ad4a70c684
Use warn log level for integration tests
Just to limit all the noise from code-server's startup output.
2021-05-06 14:27:16 -05:00
Asher
1789cd1bcb
Move temp test dirs under a tests sub-directory
This is to match the other tests that create temp directories. It also
lets you clean up test temp directories all at once separately from
other non-test temporary directories.
2021-05-06 14:25:51 -05:00
Asher
52cf2fcf29
Move tmpdir test helper to test helpers file 2021-05-06 14:25:50 -05:00
Asher
a882be5748
Refactor integration tests to use main entry point 2021-05-05 12:24:41 -05:00
Asher
a48ac5080b
Share common util code with VS Code
This lets us re-use the normalized base path so when we expire/clear the
cookie we use the same base path.
2021-05-04 13:29:40 -05:00
Joe Previte
7bfdd13cb3
refactor: tmpdir and add to test utils 2021-04-23 16:40:39 -07:00
Joe Previte
ad0f12e664
refactor: check for editor consistently in tests 2021-04-06 15:46:58 -07:00
Joe Previte
fd69f2db88
refactor: logout test 2021-04-06 15:46:57 -07:00
Joe Previte
c666b47668
refactor: globalSetup and create cookie manually 2021-04-06 15:46:56 -07:00
Joe Previte
4b703cbd4d
refactor: e2e tests based on jest-playwright 2021-04-06 15:46:56 -07:00
Joe Previte
bd55cb94be
refactor: move test dir to jest e2e config 2021-04-06 15:46:56 -07:00
Joe Previte
9ee2556dd1
chore: update gitignore with test dirs 2021-03-12 12:00:57 -07:00
Joe Previte
cf6fdb90eb
refactor: create test/utils 2021-03-12 12:00:56 -07:00