Skip to content

Commit bdfca11

Browse files
committed
test: move tests out of packages
1 parent 08f859a commit bdfca11

21 files changed

+107
-78
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ charset = utf-8
88
trim_trailing_whitespace = true
99
insert_final_newline = true
1010

11-
[packages/*/{types,normalized}/**/*]
11+
[packages/*/types/**/*]
1212
indent_size = 4

.eslintrc.json

+9-4
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
{
22
"extends": "@ark120202/eslint-config/node",
33
"parserOptions": {
4-
"project": ["build/tsconfig.json", "packages/*/{,types,normalized}/tsconfig.json"]
4+
"project": [
5+
"build/tsconfig.json",
6+
"test/*/tsconfig.json",
7+
"packages/*/tsconfig.json",
8+
"packages/*/types/tsconfig.json"
9+
]
510
},
611
"overrides": [
712
{
8-
"files": "packages/*/{types,normalized}/**/*",
13+
"files": ["test/**/*", "packages/*/types/**/*"],
914
"rules": {
1015
"no-plusplus": "off",
1116
"no-var": "off",
1217
"vars-on-top": "off",
18+
"unicorn/prevent-abbreviations": "off",
1319
"@typescript-eslint/camelcase": "off",
1420
"@typescript-eslint/class-name-casing": "off",
1521
"@typescript-eslint/no-empty-interface": "off",
16-
"@typescript-eslint/no-unused-expressions": "off",
17-
"unicorn/prevent-abbreviations": "off"
22+
"@typescript-eslint/no-unused-expressions": "off"
1823
}
1924
}
2025
]

package.json

+2-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"lint:eslint": "eslint . --ext .js,.ts",
1515
"lint:prettier": "prettier --check **/*.{ts,md,yml,json}",
1616
"prepublishOnly": "yarn build",
17-
"test": "lerna run --parallel test"
17+
"test": "tsc -b test"
1818
},
1919
"nodemonConfig": {
2020
"delay": 500,
@@ -37,9 +37,7 @@
3737
"trailingComma": "all",
3838
"overrides": [
3939
{
40-
"files": [
41-
"packages/*/{types,normalized}/**/*"
42-
],
40+
"files": "packages/*/types/**/*",
4341
"options": {
4442
"printWidth": 120
4543
}
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/// <reference types="./types/common" />
2+
/// <reference types="./types/enums-normalized.generated" />

packages/dota-lua-types/normalized/index.d.ts

-2
This file was deleted.

packages/dota-lua-types/normalized/tsconfig.json

-4
This file was deleted.

packages/dota-lua-types/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"files": [
1111
"enum-mappings.json",
1212
"transformer/index.{js,d.ts}",
13-
"{types,normalized}/**/*.d.ts"
13+
"types/**/*.d.ts",
14+
"normalized.d.ts"
1415
],
1516
"types": "types/index.d.ts",
1617
"scripts": {

packages/dota-lua-types/types/test/common.ts

-1
This file was deleted.

packages/dota-lua-types/types/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"extends": "@ark120202/typescript-config/base.json",
3-
"include": ["index.d.ts", "test/**/*"],
3+
"files": ["index.d.ts"],
44
"compilerOptions": {
55
"noEmit": true,
66
"lib": ["esnext"]

packages/panorama-types/types/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"extends": "@ark120202/typescript-config/base.json",
3-
"include": ["**/*"],
3+
"files": ["index.d.ts"],
44
"compilerOptions": {
55
"noEmit": true,
66
"lib": ["es2017"]

packages/dota-lua-types/normalized/test/enums.ts renamed to test/lua-normalized/enums.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ const hero = HeroList.GetHero(0)!;
22
hero.ModifyGold(100, true, ModifyGoldReason.UNSPECIFIED);
33

44
for (let rune: RuneType = 0; rune < DOTA_RUNE_COUNT; rune++) {
5-
GameRules.GetGameModeEntity().SetRuneEnabled(rune, false);
5+
GameRules.GetGameModeEntity().SetRuneEnabled(rune, false);
66
}

test/lua-normalized/tsconfig.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": "@ark120202/typescript-config/base.json",
3+
"include": ["**/*", "../utils.d.ts"],
4+
"compilerOptions": {
5+
"types": ["dota-lua-types/normalized"],
6+
"lib": ["esnext"],
7+
"noEmit": true
8+
}
9+
}
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
const hero = HeroList.GetHero(0);
22
assertType<CDOTA_BaseNPC_Hero | undefined>(hero);
33
if (IsValidEntity(hero)) {
4-
assertType<CDOTA_BaseNPC_Hero>(hero);
4+
assertType<CDOTA_BaseNPC_Hero>(hero);
55
}
66

77
const mayBeEntity = undefined as any;
88
if (IsValidEntity(mayBeEntity)) {
9-
assertType<CBaseEntity>(mayBeEntity);
9+
assertType<CBaseEntity>(mayBeEntity);
1010
}
1111

1212
export {};

packages/dota-lua-types/types/test/enums.ts renamed to test/lua/enums.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const hero = HeroList.GetHero(0)!;
22
hero.ModifyGold(100, true, EDOTA_ModifyGold_Reason.DOTA_ModifyGold_Unspecified);
33

44
for (let rune: DOTA_RUNES = 0; rune < DOTA_RUNES.DOTA_RUNE_COUNT; rune++) {
5-
GameRules.GetGameModeEntity().SetRuneEnabled(rune, false);
5+
GameRules.GetGameModeEntity().SetRuneEnabled(rune, false);
66
}
77

88
export {};

packages/dota-lua-types/types/test/events.ts renamed to test/lua/events.ts

+27-27
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
11
ListenToGameEvent(
2-
'npc_spawned',
3-
event => {
4-
assertType<EntityIndex>(event.entindex);
5-
},
6-
undefined,
2+
'npc_spawned',
3+
event => {
4+
assertType<EntityIndex>(event.entindex);
5+
},
6+
undefined,
77
);
88

99
class GameMode {
10-
public npcSpawned(this: this, event: NpcSpawnedEvent) {
11-
assertType<GameMode>(this);
12-
assertType<EntityIndex>(event.entindex);
13-
}
10+
public npcSpawned(this: this, event: NpcSpawnedEvent) {
11+
assertType<GameMode>(this);
12+
assertType<EntityIndex>(event.entindex);
13+
}
1414
}
1515

1616
const gameMode = new GameMode();
1717
ListenToGameEvent('npc_spawned', gameMode.npcSpawned, gameMode);
1818

1919
declare global {
20-
interface GameEventDeclarations {
21-
game_event: { foo: string };
22-
}
20+
interface GameEventDeclarations {
21+
game_event: { foo: string };
22+
}
2323
}
2424

2525
ListenToGameEvent('game_event', event => assertType<string>(event.foo), undefined);
2626
FireGameEvent('game_event', { foo: 'bar' });
2727
FireGameEventLocal('game_event', { foo: 'bar' });
2828

2929
declare global {
30-
interface CustomGameEventDeclarations {
31-
declared_event: { foo: string };
32-
}
30+
interface CustomGameEventDeclarations {
31+
declared_event: { foo: string };
32+
}
3333
}
3434

3535
CustomGameEventManager.RegisterListener('declared_event', (_, e) => assertType<string>(e.foo));
3636
CustomGameEventManager.RegisterListener<{ foo: string }>('inline_event', (_, event) => {
37-
assertType<string>(event.foo);
37+
assertType<string>(event.foo);
3838
});
3939
CustomGameEventManager.RegisterListener('untyped_event', (_, event) => {
40-
assertType<object>(event);
41-
assertType<PlayerID>(event.PlayerID);
42-
// @ts-ignore TODO: Expect error
43-
event.foo;
40+
assertType<object>(event);
41+
assertType<PlayerID>(event.PlayerID);
42+
// @ts-ignore TODO: Expect error
43+
event.foo;
4444
});
4545

4646
CustomGameEventManager.RegisterListener('', (_, event) => {
47-
assertType<PlayerID>(event.PlayerID);
47+
assertType<PlayerID>(event.PlayerID);
4848
});
4949

5050
CustomGameEventManager.Send_ServerToAllClients('declared_event', { foo: 'bar' });
@@ -53,12 +53,12 @@ CustomGameEventManager.Send_ServerToAllClients<{ foo: 'bar' }>('inline_event', {
5353
CustomGameEventManager.Send_ServerToAllClients('untyped_event', {});
5454

5555
declare global {
56-
interface CustomNetTableDeclarations {
57-
custom_net_table: {
58-
foo: string;
59-
bar: number;
60-
};
61-
}
56+
interface CustomNetTableDeclarations {
57+
custom_net_table: {
58+
foo: string;
59+
bar: number;
60+
};
61+
}
6262
}
6363

6464
CustomNetTables.SetTableValue('custom_net_table', 'foo', 'value');

test/lua/tsconfig.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": "@ark120202/typescript-config/base.json",
3+
"include": ["**/*", "../utils.d.ts"],
4+
"compilerOptions": {
5+
"types": ["dota-lua-types"],
6+
"lib": ["esnext"],
7+
"noEmit": true
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,34 @@
1-
const assertType = <T>(value: T) => value;
2-
31
GameEvents.Subscribe('npc_spawned', event => {
4-
assertType<EntityIndex>(event.entindex);
2+
assertType<EntityIndex>(event.entindex);
53
});
64

75
declare global {
8-
interface GameEventDeclarations {
9-
game_event: { foo: string };
10-
}
6+
interface GameEventDeclarations {
7+
game_event: { foo: string };
8+
}
119
}
1210

1311
GameEvents.Subscribe('game_event', event => assertType<string>(event.foo));
1412
GameEvents.SendEventClientSide('game_event', { foo: 'bar' });
1513

1614
declare global {
17-
interface CustomGameEventDeclarations {
18-
declared_event: { foo: string };
19-
}
15+
interface CustomGameEventDeclarations {
16+
declared_event: { foo: string };
17+
}
2018
}
2119

2220
GameEvents.Subscribe('declared_event', event => assertType<string>(event.foo));
2321
GameEvents.Subscribe<{ foo: string }>('inline_event', event => assertType<string>(event.foo));
2422
GameEvents.Subscribe('untyped_event', event => {
25-
assertType<object>(event);
26-
// @ts-ignore TODO: Expect error
27-
event.foo;
23+
assertType<object>(event);
24+
// @ts-ignore TODO: Expect error
25+
event.foo;
2826
});
2927

3028
GameEvents.Subscribe<{ array: string[]; boolean: boolean; symbol: symbol }>('type_test', event => {
31-
assertType<Record<number, string>>(event.array);
32-
assertType<0 | 1>(event.boolean);
33-
assertType<{}>(event.symbol);
29+
assertType<Record<number, string>>(event.array);
30+
assertType<0 | 1>(event.boolean);
31+
assertType<never>(event.symbol);
3432
});
3533

3634
GameEvents.SendCustomGameEventToServer('declared_event', { foo: 'bar' });
@@ -39,28 +37,28 @@ GameEvents.SendCustomGameEventToServer<{ foo: 'bar' }>('inline_event', { foo: 'b
3937
GameEvents.SendCustomGameEventToServer('untyped_event', {});
4038

4139
declare global {
42-
interface CustomNetTableDeclarations {
43-
custom_net_table: {
44-
foo: string;
45-
bar: boolean;
46-
};
47-
}
40+
interface CustomNetTableDeclarations {
41+
custom_net_table: {
42+
foo: string;
43+
bar: boolean;
44+
};
45+
}
4846
}
4947

5048
assertType<string>(CustomNetTables.GetTableValue('custom_net_table', 'foo'));
5149
assertType<0 | 1>(CustomNetTables.GetTableValue('custom_net_table', 'bar'));
5250

5351
for (const pair of CustomNetTables.GetAllTableValues('custom_net_table')) {
54-
if (pair.key === 'foo') {
55-
assertType<string>(pair.value);
56-
} else {
57-
assertType<0 | 1>(pair.value);
58-
}
52+
if (pair.key === 'foo') {
53+
assertType<string>(pair.value);
54+
} else {
55+
assertType<0 | 1>(pair.value);
56+
}
5957
}
6058

6159
CustomNetTables.SubscribeNetTableListener('custom_net_table', (_tableName, key, value) => {
62-
assertType<'foo' | 'bar'>(key);
63-
assertType<string | 0 | 1>(value);
60+
assertType<'foo' | 'bar'>(key);
61+
assertType<string | 0 | 1>(value);
6462
});
6563

6664
export {};

test/panorama/tsconfig.json

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"extends": "@ark120202/typescript-config/base.json",
3+
"include": ["**/*", "../utils.d.ts"],
4+
"compilerOptions": {
5+
"types": ["panorama-types"],
6+
"lib": ["es2017"],
7+
"noEmit": true
8+
}
9+
}

test/tsconfig.json

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"files": [],
3+
"references": [{ "path": "lua" }, { "path": "lua-normalized" }, { "path": "panorama" }]
4+
}

test/utils.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
declare function assertType<T>(value: T): T;

0 commit comments

Comments
 (0)