-
Notifications
You must be signed in to change notification settings - Fork 574
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
test: migrate code tests to acceptance #5139
Conversation
|
@@ -90,4 +90,6 @@ if (!config.ROOT) { | |||
|
|||
config.PUBLIC_VULN_DB_URL = 'https://security.snyk.io'; | |||
|
|||
config.CODE_CLIENT_PROXY_URL = process.env.SNYK_CODE_CLIENT_PROXY_URL || ''; | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Introduce the ability to configure the CODE_CLIENT_PROXY_URL via environment variables. This is aimed at making it easier to test.
93efb05
to
f74c87f
Compare
deepCodeServer.listen(() => {}); | ||
env = { | ||
...initialEnvVars, | ||
SNYK_CODE_CLIENT_PROXY_URL: `http://localhost:${deepCodeServer.getPort()}`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Diverging from the existing pattern with fakeServer where port is passed in. Instead by kicking it off before env we can default to using any available port on the machine. This will make it easier to introduce parallelisation within the same machine at a later date. Included as part of this work as a proof of concept. Refactoring existing fakerServer to default to this behaviour can be done as part of a follow up changeset.
@@ -0,0 +1,192 @@ | |||
import * as express from 'express'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: what's the reason for not extending fake-server.ts
and creating a second "fake-server"?
edit: I think this comment may have something to do with it? If so, it might be worth adding something like a TODO
in this file so we don't forget about it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A good question, fake-server
is less generic than it sounds, it aims to replicate our primary public APIs, whereas the second server is for secondary set of public APIs. Currently these are distributed across two "namespaces" api.snyk.io and deepcode.snyk.io. This is something of a legacy shadow, I agree something to tidy up in a future refactor. Ideally as part of moving our fake servers to assign their own port 🤩
347e98c
to
8468a6c
Compare
5c03317
to
3fb057d
Compare
3fb057d
to
126335b
Compare
Pull Request Submission
Please check the boxes once done.
The pull request must:
feat:
orfix:
, others might be used in rare occasions as well, if there is no need to document the changes in the release notes. The changes or fixes should be described in detail in the commit message for the changelog & release notes.Pull Request Review
All pull requests must undergo a thorough review process before being merged.
The review process of the code PR should include code review, testing, and any necessary feedback or revisions.
Pull request reviews of functionality developed in other teams only review the given documentation and test reports.
Manual testing will not be performed by the reviewing team, and is the responsibility of the author of the PR.
For Node projects: It’s important to make sure changes in
package.json
are also affectingpackage-lock.json
correctly.If a dependency is not necessary, don’t add it.
When adding a new package as a dependency, make sure that the change is absolutely necessary. We would like to refrain from adding new dependencies when possible.
Documentation PRs in gitbook are reviewed by Snyk's content team. They will also advise on the best phrasing and structuring if needed.
Pull Request Approval
Once a pull request has been reviewed and all necessary revisions have been made, it is approved for merging into
the main codebase. The merging of the code PR is performed by the code owners, the merging of the documentation PR
by our content writers.
What does this PR do?
Lifts the unit tests for
snyk code test
up to be closed box acceptance test, this allows us to perform higher level validation against the stdout, stderr and exit code without our tests knowing anything about the underlying implementation. This allows us to refactor away from TS CLI for rendering to use the GO CLI.This is not a complete migration of tests, instead a sample of happy and error pathways to validate the new infrastructure
fakeDeepCodeServer
and some changes aimed at making tests easier to write.How should this be manually tested?
npx jest ./test/jest/acceptance/snyk-code/snyk-code.spec.ts