Skip to content

Commit 4f5ac45

Browse files
committed
refactor(tests): use assert.instanceOf for token type verification
Replace repeated `(token as TokenType).property` casts with `assert.instanceOf(token, TokenType)` followed by direct property access. This leverages TypeScript type narrowing after the assertion, resulting in cleaner, more readable test code.
1 parent 5d17e2b commit 4f5ac45

11 files changed

+216
-168
lines changed

test/unit/token/colmetadata-token-parser-test.ts

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,14 @@ describe('Colmetadata Token Parser', () => {
3434
assert.isFalse(result.done);
3535
const token = result.value;
3636

37-
assert.isOk(!(token as any).error);
38-
39-
assert.strictEqual((token as ColMetadataToken).columns.length, 1024);
37+
assert.instanceOf(token, ColMetadataToken);
38+
assert.strictEqual(token.columns.length, 1024);
4039

4140
for (let i = 0; i < 1024; i++) {
42-
assert.strictEqual((token as ColMetadataToken).columns[i].userType, 2);
43-
assert.strictEqual((token as ColMetadataToken).columns[i].flags, 3);
44-
assert.strictEqual((token as ColMetadataToken).columns[i].type.name, 'Int');
45-
assert.strictEqual((token as ColMetadataToken).columns[i].colName, 'name');
41+
assert.strictEqual(token.columns[i].userType, 2);
42+
assert.strictEqual(token.columns[i].flags, 3);
43+
assert.strictEqual(token.columns[i].type.name, 'Int');
44+
assert.strictEqual(token.columns[i].colName, 'name');
4645
}
4746

4847
assert.isTrue((await parser.next()).done);
@@ -71,12 +70,12 @@ describe('Colmetadata Token Parser', () => {
7170
assert.isFalse(result.done);
7271
const token = result.value;
7372

74-
assert.isOk(!(token as any).error);
75-
assert.strictEqual((token as ColMetadataToken).columns.length, 1);
76-
assert.strictEqual((token as ColMetadataToken).columns[0].userType, 2);
77-
assert.strictEqual((token as ColMetadataToken).columns[0].flags, 3);
78-
assert.strictEqual((token as ColMetadataToken).columns[0].type.name, 'Int');
79-
assert.strictEqual((token as ColMetadataToken).columns[0].colName, 'name');
73+
assert.instanceOf(token, ColMetadataToken);
74+
assert.strictEqual(token.columns.length, 1);
75+
assert.strictEqual(token.columns[0].userType, 2);
76+
assert.strictEqual(token.columns[0].flags, 3);
77+
assert.strictEqual(token.columns[0].type.name, 'Int');
78+
assert.strictEqual(token.columns[0].colName, 'name');
8079

8180
assert.isTrue((await parser.next()).done);
8281
});
@@ -106,17 +105,18 @@ describe('Colmetadata Token Parser', () => {
106105
const result = await parser.next();
107106
assert.isFalse(result.done);
108107
const token = result.value;
109-
assert.isOk(!(token as any).error);
110-
assert.strictEqual((token as ColMetadataToken).columns.length, 1);
111-
assert.strictEqual((token as ColMetadataToken).columns[0].userType, 2);
112-
assert.strictEqual((token as ColMetadataToken).columns[0].flags, 3);
113-
assert.strictEqual((token as ColMetadataToken).columns[0].type.name, 'VarChar');
114-
assert.strictEqual((token as ColMetadataToken).columns[0].collation.lcid, 0x0409);
115-
assert.strictEqual((token as ColMetadataToken).columns[0].collation.codepage, 'CP1257');
116-
assert.strictEqual((token as ColMetadataToken).columns[0].collation.flags, 0x85);
117-
assert.strictEqual((token as ColMetadataToken).columns[0].collation.version, 0x7);
118-
assert.strictEqual((token as ColMetadataToken).columns[0].collation.sortId, 0x9a);
119-
assert.strictEqual((token as ColMetadataToken).columns[0].colName, 'name');
120-
assert.strictEqual((token as ColMetadataToken).columns[0].dataLength, length);
108+
109+
assert.instanceOf(token, ColMetadataToken);
110+
assert.strictEqual(token.columns.length, 1);
111+
assert.strictEqual(token.columns[0].userType, 2);
112+
assert.strictEqual(token.columns[0].flags, 3);
113+
assert.strictEqual(token.columns[0].type.name, 'VarChar');
114+
assert.strictEqual(token.columns[0].collation.lcid, 0x0409);
115+
assert.strictEqual(token.columns[0].collation.codepage, 'CP1257');
116+
assert.strictEqual(token.columns[0].collation.flags, 0x85);
117+
assert.strictEqual(token.columns[0].collation.version, 0x7);
118+
assert.strictEqual(token.columns[0].collation.sortId, 0x9a);
119+
assert.strictEqual(token.columns[0].colName, 'name');
120+
assert.strictEqual(token.columns[0].dataLength, length);
121121
});
122122
});

test/unit/token/done-token-parser-test.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ describe('Done Token Parser', () => {
3434
assert.isFalse(result.done);
3535
const token = result.value;
3636

37-
assert.isOk(!(token as DoneToken).more);
38-
assert.strictEqual((token as DoneToken).curCmd, curCmd);
39-
assert.isOk(!(token as DoneToken).rowCount);
37+
assert.instanceOf(token, DoneToken);
38+
assert.isOk(!token.more);
39+
assert.strictEqual(token.curCmd, curCmd);
40+
assert.isOk(!token.rowCount);
4041
});
4142

4243
it('should more', async () => {
@@ -49,9 +50,10 @@ describe('Done Token Parser', () => {
4950
assert.isFalse(result.done);
5051
const token = result.value;
5152

52-
assert.isOk((token as DoneToken).more);
53-
assert.strictEqual((token as DoneToken).curCmd, curCmd);
54-
assert.isOk(!(token as DoneToken).rowCount);
53+
assert.instanceOf(token, DoneToken);
54+
assert.isOk(token.more);
55+
assert.strictEqual(token.curCmd, curCmd);
56+
assert.isOk(!token.rowCount);
5557
});
5658

5759
it('should done row count', async () => {
@@ -64,8 +66,9 @@ describe('Done Token Parser', () => {
6466
assert.isFalse(result.done);
6567
const token = result.value;
6668

67-
assert.isOk(!(token as DoneToken).more);
68-
assert.strictEqual((token as DoneToken).curCmd, 1);
69-
assert.strictEqual((token as DoneToken).rowCount, doneRowCount);
69+
assert.instanceOf(token, DoneToken);
70+
assert.isOk(!token.more);
71+
assert.strictEqual(token.curCmd, 1);
72+
assert.strictEqual(token.rowCount, doneRowCount);
7073
});
7174
});

test/unit/token/env-change-token-parser-test.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import StreamParser, { type ParserOptions } from '../../../src/token/stream-parser';
2-
import { type EnvChangeToken } from '../../../src/token/token';
2+
import { DatabaseEnvChangeToken, PacketSizeEnvChangeToken } from '../../../src/token/token';
33
import WritableTrackingBuffer from '../../../src/tracking-buffer/writable-tracking-buffer';
44
import Debug from '../../../src/debug';
55
import { assert } from 'chai';
@@ -27,9 +27,11 @@ describe('Env Change Token Parser', () => {
2727
const result = await parser.next();
2828
assert.isFalse(result.done);
2929
const token = result.value;
30-
assert.strictEqual((token as EnvChangeToken).type, 'DATABASE');
31-
assert.strictEqual((token as EnvChangeToken).oldValue, 'old');
32-
assert.strictEqual((token as EnvChangeToken).newValue, 'new');
30+
31+
assert.instanceOf(token, DatabaseEnvChangeToken);
32+
assert.strictEqual(token.type, 'DATABASE');
33+
assert.strictEqual(token.oldValue, 'old');
34+
assert.strictEqual(token.newValue, 'new');
3335
});
3436

3537
it('should write with correct packet size', async () => {
@@ -52,9 +54,10 @@ describe('Env Change Token Parser', () => {
5254
assert.isFalse(result.done);
5355
const token = result.value;
5456

55-
assert.strictEqual((token as EnvChangeToken).type, 'PACKET_SIZE');
56-
assert.strictEqual((token as EnvChangeToken).oldValue, 1024);
57-
assert.strictEqual((token as EnvChangeToken).newValue, 2048);
57+
assert.instanceOf(token, PacketSizeEnvChangeToken);
58+
assert.strictEqual(token.type, 'PACKET_SIZE');
59+
assert.strictEqual(token.oldValue, 1024);
60+
assert.strictEqual(token.newValue, 2048);
5861
});
5962

6063
it('should be of bad type', async () => {

test/unit/token/feature-ext-parser-test.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ describe('Feature Ext Parser', () => {
3131
const result = await parser.next();
3232
assert.isFalse(result.done);
3333
const token = result.value;
34-
assert.isOk((token as FeatureExtAckToken).fedAuth.equals(Buffer.from('bc')));
35-
assert.isUndefined((token as FeatureExtAckToken).utf8Support); // feature ext ack for UTF8_SUPPORT was not received
34+
35+
assert.instanceOf(token, FeatureExtAckToken);
36+
assert.isOk(token.fedAuth!.equals(Buffer.from('bc')));
37+
assert.isUndefined(token.utf8Support); // feature ext ack for UTF8_SUPPORT was not received
3638
assert.isTrue((await parser.next()).done);
3739
});
3840

@@ -49,10 +51,11 @@ describe('Feature Ext Parser', () => {
4951
const parser = StreamParser.parseTokens([buffer.data], debug, options);
5052
const result = await parser.next();
5153
assert.isFalse(result.done);
52-
5354
const token = result.value;
54-
assert.strictEqual((token as FeatureExtAckToken).utf8Support, true); // feature ext ack for UTF8_SUPPORT was positive
55-
assert.isUndefined((token as FeatureExtAckToken).fedAuth); // fed auth not ack'd
55+
56+
assert.instanceOf(token, FeatureExtAckToken);
57+
assert.strictEqual(token.utf8Support, true); // feature ext ack for UTF8_SUPPORT was positive
58+
assert.isUndefined(token.fedAuth); // fed auth not ack'd
5659

5760
assert.isTrue((await parser.next()).done);
5861
});

test/unit/token/fedauth-info-parser-test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@ describe('Fedauth Info Parser', () => {
2626
const result = await parser.next();
2727
assert.isFalse(result.done);
2828
const token = result.value;
29-
assert.strictEqual((token as FedAuthInfoToken).stsurl, 'stsurl');
30-
assert.strictEqual((token as FedAuthInfoToken).spn, 'spn');
29+
30+
assert.instanceOf(token, FedAuthInfoToken);
31+
assert.strictEqual(token.stsurl, 'stsurl');
32+
assert.strictEqual(token.spn, 'spn');
3133

3234
assert.isTrue((await parser.next()).done);
3335
});

test/unit/token/infoerror-token-parser-test.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,15 @@ describe('Infoerror token parser', () => {
3636
const result = await parser.next();
3737
assert.isFalse(result.done);
3838
const token = result.value;
39-
assert.strictEqual((token as InfoMessageToken).number, number);
40-
assert.strictEqual((token as InfoMessageToken).state, state);
41-
assert.strictEqual((token as InfoMessageToken).class, class_);
42-
assert.strictEqual((token as InfoMessageToken).message, message);
43-
assert.strictEqual((token as InfoMessageToken).serverName, serverName);
44-
assert.strictEqual((token as InfoMessageToken).procName, procName);
45-
assert.strictEqual((token as InfoMessageToken).lineNumber, lineNumber);
39+
40+
assert.instanceOf(token, InfoMessageToken);
41+
assert.strictEqual(token.number, number);
42+
assert.strictEqual(token.state, state);
43+
assert.strictEqual(token.class, class_);
44+
assert.strictEqual(token.message, message);
45+
assert.strictEqual(token.serverName, serverName);
46+
assert.strictEqual(token.procName, procName);
47+
assert.strictEqual(token.lineNumber, lineNumber);
4648

4749
assert.isTrue((await parser.next()).done);
4850
});

test/unit/token/loginack-token-parser-test.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@ describe('Loginack Token Parser', () => {
4040
const result = await parser.next();
4141
assert.isFalse(result.done);
4242
const token = result.value;
43-
assert.strictEqual((token as LoginAckToken).interface, 'SQL_TSQL');
44-
assert.strictEqual((token as LoginAckToken).tdsVersion, '7_2');
45-
assert.strictEqual((token as LoginAckToken).progName, progName);
46-
assert.deepEqual((token as LoginAckToken).progVersion, progVersion);
43+
44+
assert.instanceOf(token, LoginAckToken);
45+
assert.strictEqual(token.interface, 'SQL_TSQL');
46+
assert.strictEqual(token.tdsVersion, '7_2');
47+
assert.strictEqual(token.progName, progName);
48+
assert.deepEqual(token.progVersion, progVersion);
4749

4850
assert.isTrue((await parser.next()).done);
4951
});

test/unit/token/nbcrow-token-parser-test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@ describe('NBCRow Token Parser', function() {
3838
assert.isFalse(result.done);
3939
const token = result.value;
4040

41-
assert.strictEqual((token as NBCRowToken).columns.length, 1024);
41+
assert.instanceOf(token, NBCRowToken);
42+
assert.strictEqual(token.columns.length, 1024);
4243

4344
for (let i = 0; i < 1024; i += 1) {
44-
assert.strictEqual((token as NBCRowToken).columns[i].value, i.toString());
45-
assert.strictEqual((token as NBCRowToken).columns[i].metadata, colMetadata[i]);
45+
assert.strictEqual(token.columns[i].value, i.toString());
46+
assert.strictEqual(token.columns[i].metadata, colMetadata[i]);
4647
}
4748

4849
assert.isTrue((await parser.next()).done);

test/unit/token/order-token-parser-test.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ describe('Order Token Parser', () => {
2424
const result = await parser.next();
2525
assert.isFalse(result.done);
2626
const token = result.value;
27-
assert.strictEqual((token as OrderToken).orderColumns.length, 1);
2827

29-
assert.strictEqual((token as OrderToken).orderColumns[0], column);
28+
assert.instanceOf(token, OrderToken);
29+
assert.strictEqual(token.orderColumns.length, 1);
30+
assert.strictEqual(token.orderColumns[0], column);
3031
});
3132

3233
it('should have two columns', async () => {
@@ -47,9 +48,11 @@ describe('Order Token Parser', () => {
4748
const result = await parser.next();
4849
assert.isFalse(result.done);
4950
const token = result.value;
50-
assert.strictEqual((token as OrderToken).orderColumns.length, 2);
51-
assert.strictEqual((token as OrderToken).orderColumns[0], column1);
52-
assert.strictEqual((token as OrderToken).orderColumns[1], column2);
51+
52+
assert.instanceOf(token, OrderToken);
53+
assert.strictEqual(token.orderColumns.length, 2);
54+
assert.strictEqual(token.orderColumns[0], column1);
55+
assert.strictEqual(token.orderColumns[1], column2);
5356

5457
assert.isTrue((await parser.next()).done);
5558
});

0 commit comments

Comments
 (0)