Skip to content

Commit 1845d76

Browse files
authored
Merge pull request #4375 from snyk/fix/HEAD-90_extcli_endpoint_usage
Fix: support configured endpoint in Extensible CLI
2 parents 93e5965 + 5370b2d commit 1845d76

File tree

3 files changed

+90
-5
lines changed

3 files changed

+90
-5
lines changed

cliv2/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ require (
99
github.com/google/uuid v1.3.0
1010
github.com/pkg/errors v0.9.1
1111
github.com/snyk/cli-extension-sbom v0.0.0-20221212093410-6b474ed1a42a
12-
github.com/snyk/go-application-framework v0.0.0-20230125123834-dfb806074f4a
12+
github.com/snyk/go-application-framework v0.0.0-20230127154548-a9c237373827
1313
github.com/snyk/go-httpauth v0.0.0-20220915135832-0edf62cf8cdd
1414
github.com/spf13/cobra v1.6.0
1515
github.com/spf13/pflag v1.0.5

cliv2/go.sum

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,8 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV
186186
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
187187
github.com/snyk/cli-extension-sbom v0.0.0-20221212093410-6b474ed1a42a h1:kImXWA4kbwaREeC+kaJ8H0aOukWzpK8K/UzAsExj6MU=
188188
github.com/snyk/cli-extension-sbom v0.0.0-20221212093410-6b474ed1a42a/go.mod h1:ohrrgC94Gx82/cgSiac02JQrsMjFtggvhAvXGuGjDGU=
189-
github.com/snyk/go-application-framework v0.0.0-20230108154252-b4819d803624 h1:hSkeC6T7h5ppnRCMy236LGi1atqmhBJkLWSI7vsYOTk=
190-
github.com/snyk/go-application-framework v0.0.0-20230108154252-b4819d803624/go.mod h1:HtfqpR9P9WmTym2HruG7w/be5w+/HBfl5Y82CXSZ7tU=
191-
github.com/snyk/go-application-framework v0.0.0-20230125123834-dfb806074f4a h1:PAW3dFhSDGXefDi6I4sK4/6G23czznRQOaZoBSe0Q3M=
192-
github.com/snyk/go-application-framework v0.0.0-20230125123834-dfb806074f4a/go.mod h1:HtfqpR9P9WmTym2HruG7w/be5w+/HBfl5Y82CXSZ7tU=
189+
github.com/snyk/go-application-framework v0.0.0-20230127154548-a9c237373827 h1:cUpEEJ7g404dDABJbQU5auuqSFqTBx9+6g45TCcFOTQ=
190+
github.com/snyk/go-application-framework v0.0.0-20230127154548-a9c237373827/go.mod h1:HtfqpR9P9WmTym2HruG7w/be5w+/HBfl5Y82CXSZ7tU=
193191
github.com/snyk/go-httpauth v0.0.0-20220915135832-0edf62cf8cdd h1:zjDhcQ642rIVI8aIjfG5uVcw+OGotQtX2l9VHe7IqCQ=
194192
github.com/snyk/go-httpauth v0.0.0-20220915135832-0edf62cf8cdd/go.mod h1:v6t6wKizOcHXT3p4qKn6Bda7yNIjCQ54Xyl31NjgXkY=
195193
github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw=

test/jest/acceptance/snyk-config/snyk-config.spec.ts

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import { runSnykCLI } from '../../util/runSnykCLI';
2+
import { FakeServer, fakeServer } from '../../../acceptance/fake-server';
3+
import { createProjectFromWorkspace } from '../../util/createProject';
4+
import { isCLIV2 } from '../../util/isCLIV2';
25

36
jest.setTimeout(1000 * 60);
47

@@ -14,3 +17,87 @@ test('returns value in one line', async () => {
1417
expect(code).toEqual(0);
1518
expect(stdout).toEqual(expectedToken + '\n');
1619
});
20+
21+
describe('snyk config set endpoint', () => {
22+
let server: FakeServer;
23+
const port = process.env.PORT || process.env.SNYK_PORT || '12345';
24+
const baseApi = '/api';
25+
const token = '123456789';
26+
27+
beforeAll((done) => {
28+
server = fakeServer(baseApi + '/v1', token);
29+
server.listen(port, () => {
30+
done();
31+
});
32+
});
33+
34+
afterEach(() => {
35+
jest.resetAllMocks();
36+
server.restore();
37+
});
38+
39+
afterAll((done) => {
40+
server.close(() => {
41+
done();
42+
});
43+
});
44+
45+
it('set and use endpoint', async () => {
46+
const env = {
47+
...process.env,
48+
SNYK_TOKEN: token,
49+
SNYK_HTTP_PROTOCOL_UPGRADE: '0',
50+
};
51+
52+
delete env['SNYK_API'];
53+
54+
// ensure that we start from scratch
55+
const requestCount0 = server.getRequests().length;
56+
expect(requestCount0).toEqual(0);
57+
58+
// set endpoint
59+
const endpoint = 'http://127.0.0.1:' + server.getPort() + baseApi;
60+
const resultconfigSet = await runSnykCLI(
61+
'config set endpoint=' + endpoint + ' -d',
62+
{
63+
env: env,
64+
},
65+
);
66+
expect(resultconfigSet.code).toEqual(0);
67+
68+
// run a tests against the endpoint
69+
const project = await createProjectFromWorkspace('npm-package');
70+
71+
const resultTest = await runSnykCLI(
72+
'test --debug --org=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee',
73+
{
74+
cwd: project.path(),
75+
env: env,
76+
},
77+
);
78+
expect(resultTest.code).toEqual(0);
79+
expect(resultTest.stderr).toContain(endpoint);
80+
expect(resultTest.stderr).not.toContain('snyk.io');
81+
82+
const requestCount1 = server.getRequests().length;
83+
expect(requestCount1).toBeGreaterThan(requestCount0);
84+
85+
if (isCLIV2()) {
86+
// generate an sbom against the endpoint
87+
const resultSBOM = await runSnykCLI(
88+
`sbom --experimental --debug --org aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee`,
89+
{
90+
env: env,
91+
},
92+
);
93+
expect(resultSBOM.code).toEqual(0);
94+
expect(resultSBOM.stderr).toContain(endpoint);
95+
expect(resultSBOM.stderr).not.toContain('snyk.io');
96+
97+
const requestCount2 = server.getRequests().length;
98+
expect(requestCount2).toBeGreaterThan(requestCount1);
99+
}
100+
101+
await runSnykCLI('config unset endpoint');
102+
});
103+
});

0 commit comments

Comments
 (0)