Skip to content

Commit 2de2a17

Browse files
committed
chore: improve typing of endpoint asserts in tests
1 parent 7964db7 commit 2de2a17

16 files changed

+522
-545
lines changed

src/utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const MIN_GZIP_BYTES = 1024;
2121
* @template R - The type of the data property
2222
*/
2323
export interface MaybeData<R> {
24+
[key: string]: any;
2425
data?: R;
2526
}
2627

test/_helper.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export const validateRequest = ({
7878
additionalHeaders = {},
7979
path,
8080
}: {
81-
query?: Request['query'];
81+
query?: Dictionary<string | number | boolean | undefined | string[]>;
8282
params?: Request['params'];
8383
body?: Request['body'];
8484
additionalHeaders?: Request['headers'];
@@ -90,7 +90,7 @@ export const validateRequest = ({
9090
};
9191
const request = mockServer.getLastRequest();
9292
if (path) {
93-
expect(request?.path).toEqual(path);
93+
expect(`${request?.baseUrl}${request?.path}`).toEqual(path);
9494
}
9595

9696
const expectedQuery = getExpectedQuery(query);

test/actors.test.ts

Lines changed: 100 additions & 112 deletions
Large diffs are not rendered by default.

test/builds.test.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,11 @@ describe('Build methods', () => {
4545
};
4646

4747
const res = await client.builds().list(query);
48-
expect(res.id).toEqual('list-builds');
49-
validateRequest(query);
48+
validateRequest({ query: query, path: '/v2/actor-builds/' });
5049

5150
const browserRes = await page.evaluate((opts) => client.builds().list(opts), query);
5251
expect(browserRes).toEqual(res);
53-
validateRequest(query);
52+
validateRequest({ query: query });
5453
});
5554
});
5655

@@ -60,47 +59,46 @@ describe('Build methods', () => {
6059

6160
const res = await client.build(buildId).get();
6261
expect(res?.id).toEqual('get-build');
63-
validateRequest({}, { buildId });
62+
validateRequest({ query: {}, params: { buildId } });
6463

6564
const browserRes = await page.evaluate((bId) => client.build(bId).get(), buildId);
6665
expect(browserRes).toEqual(res);
67-
validateRequest({}, { buildId });
66+
validateRequest({ query: {}, params: { buildId } });
6867
});
6968

7069
test('get() returns undefined on 404 status code (RECORD_NOT_FOUND)', async () => {
7170
const buildId = '404';
7271

7372
const res = await client.build(buildId).get();
7473
expect(res).toBeUndefined();
75-
validateRequest({}, { buildId });
74+
validateRequest({ query: {}, params: { buildId } });
7675

7776
const browserRes = await page.evaluate((bId) => client.build(bId).get(), buildId);
7877
expect(browserRes).toEqual(res);
79-
validateRequest({}, { buildId });
78+
validateRequest({ query: {}, params: { buildId } });
8079
});
8180

8281
test('abort() works', async () => {
8382
const buildId = 'some-build-id';
8483

8584
const res = await client.build(buildId).abort();
8685
expect(res.id).toEqual('abort-build');
87-
validateRequest({}, { buildId });
86+
validateRequest({ query: {}, params: { buildId } });
8887

8988
const browserRes = await page.evaluate((bId) => client.build(bId).abort(), buildId);
9089
expect(browserRes).toEqual(res);
91-
validateRequest({}, { buildId });
90+
validateRequest({ query: {}, params: { buildId } });
9291
});
9392

9493
test('getOpenApiDefinition() works', async () => {
9594
const buildId = 'some-build-id';
9695

9796
const res = await client.build(buildId).getOpenApiDefinition();
98-
expect(res.data.id).toEqual('build-openapi');
99-
validateRequest({}, { buildId });
97+
validateRequest({ query: {}, params: { buildId }, path: `/v2/actor-builds/${encodeURIComponent(buildId)}/openapi.json` });
10098

10199
const browserRes = await page.evaluate((bId) => client.build(bId).getOpenApiDefinition(), buildId);
102100
expect(browserRes).toEqual(res);
103-
validateRequest({}, { buildId });
101+
validateRequest({ query: {}, params: { buildId } });
104102
});
105103

106104
test('waitForFinish() works', async () => {
@@ -112,27 +110,27 @@ describe('Build methods', () => {
112110
setTimeout(() => mockServer.setResponse({ body }), (waitSecs * 1000) / 2);
113111
const res = await client.build(buildId).waitForFinish({ waitSecs });
114112
expect(res).toEqual(data);
115-
validateRequest({ waitForFinish: 0 }, { buildId });
113+
validateRequest({ query: { waitForFinish: 0 }, params: { buildId } });
116114

117115
const browserRes = await page.evaluate(
118116
(bId, ws) => client.build(bId).waitForFinish({ waitSecs: ws }),
119117
buildId,
120118
waitSecs,
121119
);
122120
expect(browserRes).toEqual(res);
123-
validateRequest({ waitForFinish: 0 }, { buildId });
121+
validateRequest({ query: { waitForFinish: 0 }, params: { buildId } });
124122
});
125123

126124
test('log().get() works', async () => {
127125
const buildId = 'some-build-id';
128126

129127
const resource = await client.build(buildId).log().get();
130128
expect(resource).toEqual('build-log');
131-
validateRequest({}, { buildId });
129+
validateRequest({ query: {}, params: { buildId } });
132130

133131
const browserRes = await page.evaluate((id) => client.build(id).log().get(), buildId);
134132
expect(browserRes).toEqual('build-log');
135-
validateRequest({}, { buildId });
133+
validateRequest({ query: {}, params: { buildId } });
136134
});
137135
});
138136
});

0 commit comments

Comments
 (0)