From 65a18db3c8a6f46e4953871fbc2d2ef30df4e460 Mon Sep 17 00:00:00 2001 From: Travis Prescott Date: Mon, 4 Mar 2024 13:54:03 -0800 Subject: [PATCH] Create arm-resourceNamePatternRule-2024-2-4-21-52-56.md --- .../arm-resourceNamePatternRule-2024-2-4-21-52-56.md | 8 ++++++++ packages/typespec-azure-resource-manager/src/linter.ts | 2 +- .../src/rules/arm-delete-response-codes.ts | 3 +-- .../test/rules/arm-resource-name-pattern.test.ts | 5 +++-- 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .chronus/changes/arm-resourceNamePatternRule-2024-2-4-21-52-56.md diff --git a/.chronus/changes/arm-resourceNamePatternRule-2024-2-4-21-52-56.md b/.chronus/changes/arm-resourceNamePatternRule-2024-2-4-21-52-56.md new file mode 100644 index 0000000000..8d7ed0068a --- /dev/null +++ b/.chronus/changes/arm-resourceNamePatternRule-2024-2-4-21-52-56.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-azure-resource-manager" +--- + +ARM: add `arm-resource-name-pattern` rule to allow disabling LintDiff `ResourceNamePattern` rule diff --git a/packages/typespec-azure-resource-manager/src/linter.ts b/packages/typespec-azure-resource-manager/src/linter.ts index d9894d504e..c0b8bf5632 100644 --- a/packages/typespec-azure-resource-manager/src/linter.ts +++ b/packages/typespec-azure-resource-manager/src/linter.ts @@ -9,6 +9,7 @@ import { invalidActionVerbRule } from "./rules/arm-resource-invalid-action-verb. import { armResourceEnvelopeProperties } from "./rules/arm-resource-invalid-envelope-property.js"; import { armResourceInvalidVersionFormatRule } from "./rules/arm-resource-invalid-version-format.js"; import { armResourceKeyInvalidCharsRule } from "./rules/arm-resource-key-invalid-chars.js"; +import { armResourceNamePatternRule } from "./rules/arm-resource-name-pattern.js"; import { armResourceOperationsRule } from "./rules/arm-resource-operation-response.js"; import { patchOperationsRule } from "./rules/arm-resource-patch.js"; import { armResourcePathInvalidCharsRule } from "./rules/arm-resource-path-invalid-chars.js"; @@ -25,7 +26,6 @@ import { patchEnvelopePropertiesRules } from "./rules/patch-envelope-properties. import { resourceNameRule } from "./rules/resource-name.js"; import { retryAfterRule } from "./rules/retry-after.js"; import { unsupportedTypeRule } from "./rules/unsupported-type.js"; -import { armResourceNamePatternRule } from "./rules/arm-resource-name-pattern.js"; const rules = [ armNoRecordRule, diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-delete-response-codes.ts b/packages/typespec-azure-resource-manager/src/rules/arm-delete-response-codes.ts index bba7336563..8edff1c6ed 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-delete-response-codes.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-delete-response-codes.ts @@ -1,7 +1,6 @@ import { Program, createRule } from "@typespec/compiler"; import { getLroMetadata } from "@azure-tools/typespec-azure-core"; -import { getHttpOperation } from "@typespec/http"; import { getArmResources } from "../resource.js"; /** @@ -25,7 +24,7 @@ export const armDeleteResponseCodesRule = createRule({ const deleteOperation = resource.operations.lifecycle.delete; const isAsync = getLroMetadata(context.program, deleteOperation.operation) !== undefined; - const [httpOp, _] = getHttpOperation(context.program, deleteOperation.operation); + const httpOp = deleteOperation.httpOperation; const statusCodes = new Set([...httpOp.responses.map((r) => r.statusCodes.toString())]); const expected = new Set(["204", "*"]); expected.add(isAsync ? "202" : "200"); diff --git a/packages/typespec-azure-resource-manager/test/rules/arm-resource-name-pattern.test.ts b/packages/typespec-azure-resource-manager/test/rules/arm-resource-name-pattern.test.ts index 35e63f1500..3cb8670aca 100644 --- a/packages/typespec-azure-resource-manager/test/rules/arm-resource-name-pattern.test.ts +++ b/packages/typespec-azure-resource-manager/test/rules/arm-resource-name-pattern.test.ts @@ -4,8 +4,8 @@ import { createLinterRuleTester, } from "@typespec/compiler/testing"; import { beforeEach, it } from "vitest"; -import { createAzureResourceManagerTestRunner } from "../test-host.js"; import { armResourceNamePatternRule } from "../../src/rules/arm-resource-name-pattern.js"; +import { createAzureResourceManagerTestRunner } from "../test-host.js"; let runner: BasicTestRunner; let tester: LinterRuleTester; @@ -56,6 +56,7 @@ it("Does not emit a warning for an ARM resource that specifies `@pattern` on the @path @segment("employees") name: string; - }`) + }` + ) .toBeValid(); });