Skip to content

Commit 25f2815

Browse files
committed
test: improve type assertions of expected values
1 parent c3d1f1a commit 25f2815

1 file changed

Lines changed: 24 additions & 18 deletions

File tree

packages/web-api/src/file-upload.test.ts

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import assert from 'node:assert/strict';
22
import { createReadStream, statSync, unlinkSync, writeFileSync } from 'node:fs';
33
import { afterEach, beforeEach, describe, it } from 'node:test';
44
import sinon from 'sinon';
5-
import { ErrorCode } from './errors';
5+
import { ErrorCode, type WebAPIFileUploadInvalidArgumentsError } from './errors';
66
import {
77
buildChannelsWarning,
88
buildLegacyFileTypeWarning,
@@ -54,8 +54,8 @@ describe('file-upload', () => {
5454
assert.strictEqual(valid.filename, res.filename);
5555

5656
// calculated values
57-
assert.ok(res.data !== undefined);
58-
assert.ok(res.length !== undefined);
57+
assert.ok(res.data);
58+
assert.ok(res.length);
5959
});
6060
it('warns if legacy filetype', async () => {
6161
const containsFileType = {
@@ -141,10 +141,10 @@ describe('file-upload', () => {
141141
assert.strictEqual(valid.file_uploads[1].filename, res[1].filename);
142142

143143
// calculated values
144-
assert.ok(res[0].data !== undefined);
145-
assert.ok(res[1].data !== undefined);
146-
assert.ok(res[0].length !== undefined);
147-
assert.ok(res[1].length !== undefined);
144+
assert.ok(res[0].data);
145+
assert.ok(res[1].data);
146+
assert.ok(res[0].length);
147+
assert.ok(res[1].length);
148148
});
149149
});
150150
describe('getFileData', () => {
@@ -157,11 +157,12 @@ describe('file-upload', () => {
157157
// if we get here this test is failed
158158
assert.fail(res.toString());
159159
} catch (err) {
160+
const e = err as WebAPIFileUploadInvalidArgumentsError;
160161
assert.strictEqual(
161-
(err as Record<string, unknown>).message,
162+
e.message,
162163
'Either a file or content field is required for valid file upload. You cannot supply both',
163164
);
164-
assert.strictEqual((err as Record<string, unknown>).code, ErrorCode.FileUploadInvalidArgumentsError);
165+
assert.strictEqual(e.code, ErrorCode.FileUploadInvalidArgumentsError);
165166
}
166167
});
167168
it('handles invalid input for file or content or when both supplied', async () => {
@@ -176,11 +177,12 @@ describe('file-upload', () => {
176177
const res = await getFileData(invalidFileUpload);
177178
assert.fail(res.toString());
178179
} catch (err) {
180+
const e = err as WebAPIFileUploadInvalidArgumentsError;
179181
assert.strictEqual(
180-
(err as Record<string, unknown>).message,
182+
e.message,
181183
'Either a file or content field is required for valid file upload. You cannot supply both',
182184
);
183-
assert.strictEqual((err as Record<string, unknown>).code, ErrorCode.FileUploadInvalidArgumentsError);
185+
assert.strictEqual(e.code, ErrorCode.FileUploadInvalidArgumentsError);
184186
}
185187

186188
// file supplied invalid type of valid
@@ -193,11 +195,12 @@ describe('file-upload', () => {
193195
const res = await getFileData(invalidFileUpload2);
194196
assert.fail(res.toString());
195197
} catch (err) {
198+
const e = err as WebAPIFileUploadInvalidArgumentsError;
196199
assert.strictEqual(
197-
(err as Record<string, unknown>).message,
200+
e.message,
198201
'file must be a valid string path, buffer or Readable',
199202
);
200-
assert.strictEqual((err as Record<string, unknown>).code, ErrorCode.FileUploadInvalidArgumentsError);
203+
assert.strictEqual(e.code, ErrorCode.FileUploadInvalidArgumentsError);
201204
}
202205

203206
// content supplied invalid type of field
@@ -210,8 +213,9 @@ describe('file-upload', () => {
210213
const res = await getFileData(invalidFileUpload3);
211214
assert.fail(res.toString());
212215
} catch (err) {
213-
assert.strictEqual((err as Record<string, unknown>).message, 'content must be a string');
214-
assert.strictEqual((err as Record<string, unknown>).code, ErrorCode.FileUploadInvalidArgumentsError);
216+
const e = err as WebAPIFileUploadInvalidArgumentsError;
217+
assert.strictEqual(e.message, 'content must be a string');
218+
assert.strictEqual(e.code, ErrorCode.FileUploadInvalidArgumentsError);
215219
}
216220
});
217221
it('handles file as buffer', async () => {
@@ -243,11 +247,12 @@ describe('file-upload', () => {
243247
const res = await getFileData(fileUpload);
244248
assert.fail(res.toString());
245249
} catch (err) {
250+
const e = err as WebAPIFileUploadInvalidArgumentsError;
246251
assert.strictEqual(
247-
(err as Record<string, unknown>).message,
252+
e.message,
248253
`Unable to resolve file data for ${fileUpload.file}. Please supply a filepath string, or binary data Buffer or String directly.`,
249254
);
250-
assert.strictEqual((err as Record<string, unknown>).code, ErrorCode.FileUploadInvalidArgumentsError);
255+
assert.strictEqual(e.code, ErrorCode.FileUploadInvalidArgumentsError);
251256
}
252257
});
253258
it('handles file as ReadStream', async () => {
@@ -289,7 +294,8 @@ describe('file-upload', () => {
289294
await getFileDataAsStream(createReadStream('./test/fixtures/test-txt-empty.txt'));
290295
assert.fail('expected exception to be thrown but was not');
291296
} catch (err) {
292-
assert.strictEqual((err as Record<string, unknown>).message, 'No data in supplied file');
297+
assert.ok(err instanceof Error);
298+
assert.strictEqual(err.message, 'No data in supplied file');
293299
}
294300
});
295301
it('ensures complete file is uploaded', async () => {

0 commit comments

Comments
 (0)