Skip to content

Commit c6e502b

Browse files
committed
Verify config file errors
1 parent 4c4ddf8 commit c6e502b

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/testRunner/unittests/tsserver/projectReferenceErrors.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,25 @@ fnErr();
152152
});
153153
}
154154

155+
function verifyConfigFileErrors({ openFiles, expectedConfigFileDiagEvents }: VerifyScenario) {
156+
it("verify config file errors", () => {
157+
const host = createServerHost([dependencyTs, dependencyConfig, usageTs, usageConfig, libFile]);
158+
const { session, events } = createSessionWithEventTracking<server.ConfigFileDiagEvent>(host, server.ConfigFileDiagEvent);
159+
160+
for (const file of openFiles()) {
161+
session.executeCommandSeq<protocol.OpenRequest>({
162+
command: protocol.CommandTypes.Open,
163+
arguments: { file: file.path }
164+
});
165+
}
166+
167+
assert.deepEqual(events, expectedConfigFileDiagEvents().map(data => ({
168+
eventName: server.ConfigFileDiagEvent,
169+
data
170+
})));
171+
});
172+
}
173+
155174
interface GetErrDiagnostics {
156175
file: File;
157176
syntax: protocol.Diagnostic[];
@@ -170,11 +189,13 @@ fnErr();
170189
expectedGetErr: () => readonly GetErrDiagnostics[];
171190
expectedGetErrForProject: () => readonly GetErrForProjectDiagnostics[];
172191
expectedSyncDiagnostics: () => readonly SyncDiagnostics[];
192+
expectedConfigFileDiagEvents: () => readonly server.ConfigFileDiagEvent["data"][];
173193
}
174194
function verifyScenario(scenario: VerifyScenario) {
175195
verifyErrorsUsingGeterr(scenario);
176196
verifyErrorsUsingGeterrForProject(scenario);
177197
verifyErrorsUsingSyncMethods(scenario);
198+
verifyConfigFileErrors(scenario);
178199
}
179200

180201
function emptyDiagnostics(file: File): GetErrDiagnostics {
@@ -243,6 +264,22 @@ fnErr();
243264
return { project, ...diagnostics };
244265
}
245266

267+
function usageConfigDiag(): server.ConfigFileDiagEvent["data"] {
268+
return {
269+
triggerFile: usageTs.path,
270+
configFileName: usageConfig.path,
271+
diagnostics: emptyArray
272+
};
273+
}
274+
275+
function dependencyConfigDiag(): server.ConfigFileDiagEvent["data"] {
276+
return {
277+
triggerFile: dependencyTs.path,
278+
configFileName: dependencyConfig.path,
279+
diagnostics: emptyArray
280+
};
281+
}
282+
246283
describe("when dependency project is not open", () => {
247284
verifyScenario({
248285
openFiles: () => [usageTs],
@@ -267,6 +304,9 @@ fnErr();
267304
syncDiagnostics(usageDiagnostics(), usageConfig.path),
268305
syncDiagnostics(emptyDiagnostics(dependencyTs), usageConfig.path),
269306
],
307+
expectedConfigFileDiagEvents: () => [
308+
usageConfigDiag()
309+
],
270310
});
271311
});
272312

@@ -290,6 +330,10 @@ fnErr();
290330
syncDiagnostics(emptyDiagnostics(dependencyTs), usageConfig.path),
291331
syncDiagnostics(dependencyDiagnostics(), dependencyConfig.path),
292332
],
333+
expectedConfigFileDiagEvents: () => [
334+
usageConfigDiag(),
335+
dependencyConfigDiag()
336+
],
293337
});
294338
});
295339
});

0 commit comments

Comments
 (0)