Skip to content

Commit d827f6f

Browse files
committed
fix: output flag names instead of undefined when no channel flag given
1 parent cfe8f6f commit d827f6f

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

src/commands/metadata-coverage/check.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,13 @@ export class MetadataCoverageCheck extends SfCommand<MetadataCoverageResult> {
7979
const { flags } = await this.parse(MetadataCoverageCheck);
8080

8181
const channelsToCheck: (keyof Channels)[] = [];
82-
for (const flag of Object.keys(FLAG_TO_CHANNEL)) {
82+
for (const flag of getChannelFlagNames()) {
8383
if (flags[flag as keyof typeof flags]) {
84-
channelsToCheck.push(
85-
FLAG_TO_CHANNEL[flag as keyof typeof FLAG_TO_CHANNEL]
86-
);
84+
channelsToCheck.push(FLAG_TO_CHANNEL[flag]);
8785
}
8886
}
8987
if (channelsToCheck.length === 0) {
90-
const flagNames = METADATA_COVERAGE_CHANNEL_FLAGNAMES.map(
91-
(name) => `--${name}`
92-
);
88+
const flagNames = getChannelFlagNames().map((name) => `--${name}`);
9389
this.error(
9490
`You haven't specified any channels using flags. Please refine using any of the following flags:\n${flagNames.join(
9591
"\n"
@@ -192,16 +188,20 @@ export class MetadataCoverageCheck extends SfCommand<MetadataCoverageResult> {
192188
}
193189
}
194190

195-
export const METADATA_COVERAGE_CHANNEL_FLAGNAMES = Object.values(
196-
MetadataCoverageCheck.flags
197-
)
198-
.filter((flag) => flag.helpGroup === "Metadata Coverage Channels")
199-
.map((flag) => flag.name);
191+
type ChannelFlag = Exclude<
192+
keyof typeof MetadataCoverageCheck.flags,
193+
"manifest" | "metadata" | "source-dir" | "api-version"
194+
>;
195+
196+
function getChannelFlagNames(): ChannelFlag[] {
197+
return Object.values(MetadataCoverageCheck.flags)
198+
.filter((flag) => flag.helpGroup === "Metadata Coverage Channels")
199+
.map((flag) => flag.name) as ChannelFlag[];
200+
}
200201

201-
const FLAG_TO_CHANNEL: Record<
202-
(typeof METADATA_COVERAGE_CHANNEL_FLAGNAMES)[number],
203-
keyof Channels
204-
> = {
202+
const FLAG_TO_CHANNEL: {
203+
[K in ChannelFlag]: keyof Channels;
204+
} = {
205205
"1gp-managed": "classicManagedPackaging",
206206
"1gp-unmanaged": "classicUnmanagedPackaging",
207207
"2gp-managed": "managedPackaging",

test/commands/metadata-coverage/check.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ describe("metadata-coverage check", function () {
3939
err = e;
4040
}
4141
expect(err).to.match(/You haven't specified any channels/);
42+
expect(err).to.match(/--2gp-managed/);
4243
});
4344

4445
it("should fail when some types are unsupported", async () => {
@@ -50,6 +51,7 @@ describe("metadata-coverage check", function () {
5051
]);
5152
expect(result.success).to.equal(false);
5253
expect(result.unsupported).to.have.length(1);
54+
expect(result.unsupported[0].type).to.equal("CustomHelpMenuSection");
5355
});
5456

5557
it("should succeed when all types of the metadata flag are supported", async () => {

0 commit comments

Comments
 (0)