Skip to content

Commit 88bed31

Browse files
Remove duplicate tests
- Remove duplicate 'errors on duplicate model names' test in models.test.ts (already covered in openapi-output.test.ts) - Remove duplicate 'no models don't filter core' test (identical to 'no models filter core') - Remove broken 'don't emit' test in property-name-conflict.test.ts (truncated name, identical body to previous test) - Remove duplicate 'one client from multiple services without version dependency' test (identical body to 'one client from multiple services') - Remove duplicate LRO test 'custom put operations without finalLocation' (identical to 'custom createOrReplace operations without finalLocation') - Remove duplicate 'example default config' and 'load example without version' tests (identical to 'example config')
1 parent a842534 commit 88bed31

6 files changed

Lines changed: 0 additions & 268 deletions

File tree

packages/typespec-autorest/test/openapi-output.test.ts

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,33 +22,6 @@ describe("definitions", () => {
2222
});
2323
});
2424

25-
it("errors on duplicate model names", async () => {
26-
const diagnostics = await diagnoseOpenApiFor(
27-
`
28-
model P {
29-
p: string;
30-
}
31-
32-
@friendlyName("P")
33-
model Q {
34-
q: string;
35-
}
36-
37-
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is a test."
38-
@route("/test1")
39-
@get
40-
op test1(p: P): Q;
41-
`,
42-
);
43-
44-
expectDiagnostics(diagnostics, [
45-
{
46-
code: "@typespec/openapi/duplicate-type-name",
47-
message: /type/,
48-
},
49-
]);
50-
});
51-
5225
it("doesn't define anonymous or unconnected models", async () => {
5326
const res: any = await oapiForModel(
5427
"{ ... Foo }",

packages/typespec-azure-core/test/operations.test.ts

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2062,66 +2062,6 @@ JobLroResponse) | Azure.Core.Foundations.ErrorResponse;
20622062
deepStrictEqual(metadata.pollingInfo.terminationStatus.succeededState, ["Succeeded"]);
20632063
});
20642064

2065-
it("Gets Lro for non-standard polling in custom put operations without finalLocation", async () => {
2066-
const [_, metadata] = await compileLroOperation(
2067-
`
2068-
model PollingStatus {
2069-
@Azure.Core.lroStatus
2070-
statusValue: "Succeeded" | "Canceled" | "Failed" | "Running";
2071-
}
2072-
2073-
model SimpleWidget {
2074-
@key
2075-
@segment("simpleWidgets")
2076-
@visibility(Lifecycle.Read)
2077-
@path
2078-
id: string;
2079-
2080-
value: string;
2081-
}
2082-
2083-
@route("/simpleWidgets/{id}/operations/{operationId}")
2084-
@get op getStatus(@path id: string, @path operationId: string): PollingStatus;
2085-
2086-
@pollingOperation(getStatus)
2087-
@route("/simpleWidgets/{id}")
2088-
@createsOrReplacesResource(SimpleWidget)
2089-
@put op createWidget(@path id: string, body: SimpleWidget) : SimpleWidget |
2090-
{
2091-
@statusCode statusCode: 201;
2092-
@header id: string,
2093-
@header("operation-id") operate: string,
2094-
@pollingLocation @header("Operation-Location") opLink: string,
2095-
@lroResult @bodyRoot body?: SimpleWidget
2096-
};
2097-
`,
2098-
"createWidget",
2099-
);
2100-
2101-
ok(metadata);
2102-
deepStrictEqual(metadata.finalStateVia, "original-uri");
2103-
deepStrictEqual(metadata.logicalResult.name, "SimpleWidget");
2104-
deepStrictEqual(metadata?.envelopeResult.name, "PollingStatus");
2105-
deepStrictEqual(metadata?.logicalPath, undefined);
2106-
2107-
deepStrictEqual((metadata.finalResult as Model)?.name, "SimpleWidget");
2108-
deepStrictEqual((metadata.finalEnvelopeResult as Model)?.name, "SimpleWidget");
2109-
deepStrictEqual(metadata?.finalResultPath, undefined);
2110-
2111-
ok(metadata.statusMonitorStep);
2112-
deepStrictEqual(metadata.statusMonitorStep.target.kind, "link");
2113-
deepStrictEqual((metadata.statusMonitorStep.target as any)?.location, "ResponseHeader");
2114-
deepStrictEqual((metadata.statusMonitorStep.target as any)?.property.name, "opLink");
2115-
2116-
ok(metadata.pollingInfo);
2117-
deepStrictEqual(metadata.pollingInfo.responseModel.name, "PollingStatus");
2118-
deepStrictEqual(metadata.pollingInfo.terminationStatus.kind, "model-property");
2119-
deepStrictEqual(metadata.pollingInfo.terminationStatus.property.name, "statusValue");
2120-
deepStrictEqual(metadata.pollingInfo.terminationStatus.canceledState, ["Canceled"]);
2121-
deepStrictEqual(metadata.pollingInfo.terminationStatus.failedState, ["Failed"]);
2122-
deepStrictEqual(metadata.pollingInfo.terminationStatus.succeededState, ["Succeeded"]);
2123-
});
2124-
21252065
it("Gets Lro for non-standard polling in post operations", async () => {
21262066
const [_, metadata] = await compileLroOperation(
21272067
`

packages/typespec-client-generator-core/test/clients/structure.test.ts

Lines changed: 0 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -957,122 +957,6 @@ it("one client from multiple services with no versioning", async () => {
957957
strictEqual(biOperation.parameters.length, 0);
958958
});
959959

960-
it("one client from multiple services without version dependency", async () => {
961-
const { program } = await SimpleBaseTester.compile(
962-
createClientCustomizationInput(
963-
`
964-
@service
965-
@versioned(VersionsA)
966-
namespace ServiceA {
967-
enum VersionsA {
968-
av1,
969-
av2,
970-
}
971-
interface AI {
972-
@route("/aTest")
973-
aTest(@query("api-version") apiVersion: VersionsA): void;
974-
}
975-
}
976-
@service
977-
@versioned(VersionsB)
978-
namespace ServiceB {
979-
enum VersionsB {
980-
bv1,
981-
bv2,
982-
}
983-
interface BI {
984-
@route("/bTest")
985-
bTest(@query("api-version") apiVersion: VersionsB): void;
986-
}
987-
}`,
988-
`
989-
@client(
990-
{
991-
name: "CombineClient",
992-
service: [ServiceA, ServiceB],
993-
autoMergeService: true,
994-
}
995-
)
996-
namespace CombineClient;
997-
`,
998-
),
999-
);
1000-
const context = await createSdkContextForTester(program);
1001-
const sdkPackage = context.sdkPackage;
1002-
strictEqual(sdkPackage.clients.length, 1);
1003-
const aVersionsEnum = sdkPackage.enums.find((e) => e.name === "VersionsA");
1004-
ok(aVersionsEnum);
1005-
const bVersionsEnum = sdkPackage.enums.find((e) => e.name === "VersionsB");
1006-
ok(bVersionsEnum);
1007-
const client = sdkPackage.clients[0];
1008-
strictEqual(client.name, "CombineClient");
1009-
// For root client of multiple services, the `apiVersions` will be empty.
1010-
strictEqual(client.apiVersions.length, 0);
1011-
strictEqual(client.children!.length, 2);
1012-
strictEqual(client.clientInitialization.parameters.length, 2);
1013-
ok(client.clientInitialization.parameters.find((p) => p.name === "endpoint"));
1014-
const apiVersionParam = client.clientInitialization.parameters.find(
1015-
(p) => p.name === "apiVersion",
1016-
);
1017-
ok(apiVersionParam);
1018-
strictEqual(apiVersionParam.apiVersions.length, 0);
1019-
strictEqual(apiVersionParam.clientDefaultValue, undefined);
1020-
// For multi-service clients, the api version param type should be string
1021-
strictEqual(apiVersionParam.type.kind, "string");
1022-
// For multi-service clients, the API version parameter should always be optional
1023-
strictEqual(apiVersionParam.optional, true);
1024-
1025-
const aiClient = client.children!.find((c) => c.name === "AI");
1026-
ok(aiClient);
1027-
1028-
// AI client should have api versions from ServiceA
1029-
strictEqual(aiClient.apiVersions.length, 2);
1030-
deepStrictEqual(aiClient.apiVersions, ["av1", "av2"]);
1031-
strictEqual(aiClient.clientInitialization.parameters.length, 2);
1032-
strictEqual(aiClient.clientInitialization.parameters[0].name, "endpoint");
1033-
strictEqual(aiClient.clientInitialization.parameters[1].name, "apiVersion");
1034-
const aiApiVersionParam = aiClient.clientInitialization.parameters[1];
1035-
strictEqual(aiApiVersionParam.isApiVersionParam, true);
1036-
strictEqual(aiApiVersionParam.onClient, true);
1037-
strictEqual(aiApiVersionParam.clientDefaultValue, "av2");
1038-
1039-
// AI client should have aTest method with VersionsA api version
1040-
strictEqual(aiClient.methods.length, 1);
1041-
const aiMethod = aiClient.methods[0];
1042-
strictEqual(aiMethod.name, "aTest");
1043-
strictEqual(aiMethod.parameters.length, 0);
1044-
const aiOperation = aiMethod.operation;
1045-
strictEqual(aiOperation.parameters.length, 1);
1046-
const aiOperationApiVersionParam = aiOperation.parameters.find((p) => p.isApiVersionParam);
1047-
ok(aiOperationApiVersionParam);
1048-
strictEqual(aiOperationApiVersionParam.correspondingMethodParams.length, 1);
1049-
strictEqual(aiOperationApiVersionParam.correspondingMethodParams[0], aiApiVersionParam);
1050-
1051-
const biClient = client.children!.find((c) => c.name === "BI");
1052-
ok(biClient);
1053-
1054-
strictEqual(biClient.apiVersions.length, 2);
1055-
deepStrictEqual(biClient.apiVersions, ["bv1", "bv2"]);
1056-
strictEqual(biClient.clientInitialization.parameters.length, 2);
1057-
strictEqual(biClient.clientInitialization.parameters[0].name, "endpoint");
1058-
strictEqual(biClient.clientInitialization.parameters[1].name, "apiVersion");
1059-
const biApiVersionParam = biClient.clientInitialization.parameters[1];
1060-
strictEqual(biApiVersionParam.isApiVersionParam, true);
1061-
strictEqual(biApiVersionParam.onClient, true);
1062-
strictEqual(biApiVersionParam.clientDefaultValue, "bv2");
1063-
1064-
// BI client should have bTest method with VersionsB api version
1065-
const biMethod = biClient.methods[0];
1066-
strictEqual(biMethod.name, "bTest");
1067-
strictEqual(biMethod.parameters.length, 0);
1068-
const biOperation = biMethod.operation;
1069-
strictEqual(biOperation.parameters.length, 1);
1070-
const biOperationApiVersionParam = biOperation.parameters.find((p) => p.isApiVersionParam);
1071-
ok(biOperationApiVersionParam);
1072-
strictEqual(biOperationApiVersionParam.correspondingMethodParams.length, 1);
1073-
strictEqual(biOperationApiVersionParam.correspondingMethodParams[0], biApiVersionParam);
1074-
});
1075-
1076960
it("one client from multiple services with `@clientLocation`", async () => {
1077961
const { program } = await SimpleBaseTester.compile(
1078962
createClientCustomizationInput(

packages/typespec-client-generator-core/test/examples/load.test.ts

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -27,24 +27,6 @@ it("example config", async () => {
2727
strictEqual(operation.examples![0].filePath, "get.json");
2828
});
2929

30-
it("example default config", async () => {
31-
const instance = await SimpleTester.createInstance();
32-
await instance.fs.addRealTypeSpecFile("./examples/get.json", `${__dirname}/load/get.json`);
33-
const { program } = await instance.compile(`
34-
@service
35-
namespace TestClient {
36-
op get(): string;
37-
}
38-
`);
39-
const context = await createSdkContextForTester(program);
40-
41-
const operation = (context.sdkPackage.clients[0].methods[0] as SdkServiceMethod<SdkHttpOperation>)
42-
.operation;
43-
ok(operation);
44-
strictEqual(operation.examples?.length, 1);
45-
strictEqual(operation.examples![0].filePath, "get.json");
46-
});
47-
4830
it("no example folder found", async () => {
4931
const { program } = await SimpleTester.compile(`
5032
@service
@@ -61,24 +43,6 @@ it("no example folder found", async () => {
6143
});
6244
});
6345

64-
it("load example without version", async () => {
65-
const instance = await SimpleTester.createInstance();
66-
await instance.fs.addRealTypeSpecFile("./examples/get.json", `${__dirname}/load/get.json`);
67-
const { program } = await instance.compile(`
68-
@service
69-
namespace TestClient {
70-
op get(): string;
71-
}
72-
`);
73-
const context = await createSdkContextForTester(program);
74-
75-
const operation = (context.sdkPackage.clients[0].methods[0] as SdkServiceMethod<SdkHttpOperation>)
76-
.operation;
77-
ok(operation);
78-
strictEqual(operation.examples?.length, 1);
79-
strictEqual(operation.examples![0].filePath, "get.json");
80-
});
81-
8246
it("load example with version", async () => {
8347
const instance = await SimpleTester.createInstance();
8448
await instance.fs.addRealTypeSpecFile("./examples/v3/get.json", `${__dirname}/load/get.json`);

packages/typespec-client-generator-core/test/rules/property-name-conflict.test.ts

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,3 @@ it("emit warning if spread property name conflicts with model name", async () =>
157157
message: `Property 'foo' having the same name as its enclosing model will cause problems with C# code generation. Consider renaming the property directly or using the @clientName("newName", "csharp") decorator to rename the property for C#.`,
158158
});
159159
});
160-
161-
it("don't emit ", async () => {
162-
await tester
163-
.expect(
164-
`
165-
model Base {
166-
foo: string
167-
}
168-
169-
model Foo {
170-
...Base;
171-
}
172-
`,
173-
)
174-
.toEmitDiagnostics({
175-
code: "@azure-tools/typespec-client-generator-core/property-name-conflict",
176-
message: `Property 'foo' having the same name as its enclosing model will cause problems with C# code generation. Consider renaming the property directly or using the @clientName("newName", "csharp") decorator to rename the property for C#.`,
177-
});
178-
});

packages/typespec-client-generator-core/test/types/model.test.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -930,16 +930,6 @@ it("no models filter core", async () => {
930930
strictEqual(models.length, 0);
931931
});
932932

933-
it("no models don't filter core", async () => {
934-
const { program } = await SimpleTester.compile(`
935-
@service
936-
namespace MyService { }
937-
`);
938-
const context = await createSdkContextForTester(program);
939-
const models = context.sdkPackage.models;
940-
strictEqual(models.length, 0);
941-
});
942-
943933
it("input usage", async () => {
944934
const { program } = await SimpleTesterWithService.compile(`
945935
model InputModel {

0 commit comments

Comments
 (0)