From 3f1e241665cbf2bc3ff916e44e85df1401f33785 Mon Sep 17 00:00:00 2001 From: Benjamin Karran Date: Fri, 30 Aug 2024 16:32:51 +0200 Subject: [PATCH] Enable merge baselines command (#123) --- visual-js/.changeset/tidy-penguins-talk.md | 5 +++++ visual-js/visual/src/cli.ts | 2 ++ visual-js/visual/src/cli/baselines.ts | 20 +++++++++----------- visual-js/visual/src/cli/common-options.ts | 6 +++--- 4 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 visual-js/.changeset/tidy-penguins-talk.md diff --git a/visual-js/.changeset/tidy-penguins-talk.md b/visual-js/.changeset/tidy-penguins-talk.md new file mode 100644 index 00000000..ca2d93bc --- /dev/null +++ b/visual-js/.changeset/tidy-penguins-talk.md @@ -0,0 +1,5 @@ +--- +"@saucelabs/visual": patch +--- + +Enable merge baselines command diff --git a/visual-js/visual/src/cli.ts b/visual-js/visual/src/cli.ts index 8d69a027..06024471 100644 --- a/visual-js/visual/src/cli.ts +++ b/visual-js/visual/src/cli.ts @@ -10,6 +10,7 @@ import { options as buildOptions, } from './cli/build.js'; import { regionOption } from './cli/common-options.js'; +import { baselinesCommand, baselinesOptions } from './cli/baselines.js'; const defaultCommand = new Command() .name('default') @@ -30,6 +31,7 @@ program.name('visual').description('Interacts with Sauce Visual'); program.addOption(regionOption); program.addCommand(defaultCommand, { isDefault: true, hidden: true }); program.addCommand(buildCommand(), buildOptions); +program.addCommand(baselinesCommand(), baselinesOptions); (async function () { try { diff --git a/visual-js/visual/src/cli/baselines.ts b/visual-js/visual/src/cli/baselines.ts index 8d82818d..c809d9d9 100644 --- a/visual-js/visual/src/cli/baselines.ts +++ b/visual-js/visual/src/cli/baselines.ts @@ -1,6 +1,6 @@ import { Command, CommandOptions } from 'commander'; import { VisualApiRegion } from '../common/regions'; -import { VisualApi, getApi } from '../api'; +import { VisualApi, getApi } from '../common/api'; import { regionOption } from './common-options'; function apiFromOptions(opts: { region: VisualApiRegion }): VisualApi { @@ -23,7 +23,8 @@ export async function baselineMergeCommand(_: unknown, cmd: Command) { const visualApi = apiFromOptions(options); const result = await visualApi.mergeBaselines({ projectName: options.project, - ...options, + sourceBranch: options.sourceBranch, + targetBranch: options.targetBranch, }); console.log(`Merged baselines: ${result.baselines?.length}`); } @@ -33,25 +34,22 @@ const mergeCommand = () => .name('merge') .description('Merge baselines from a source branch into a target branch') .addOption(regionOption) - .requiredOption('-p, --project', 'Project name') + .requiredOption('-p, --project ', 'Project name') .requiredOption( - '-s, --source-branch', + '-s, --source-branch ', 'Branch from which to copy the baselines', ) .requiredOption( - '-t, --target-branch', - 'Branch into which copy the baselines', + '-t, --target-branch ', + 'Branch into which to copy the baselines', ) .action(baselineMergeCommand); /** * command: visual baselines */ -export const options: CommandOptions = { - hidden: false, - isDefault: false, -}; -export const command = () => +export const baselinesOptions: CommandOptions = {}; +export const baselinesCommand = () => new Command() .name('baselines') .description('Interacts with Sauce Visual baselines') diff --git a/visual-js/visual/src/cli/common-options.ts b/visual-js/visual/src/cli/common-options.ts index 0dc9fc9c..6222e1e7 100644 --- a/visual-js/visual/src/cli/common-options.ts +++ b/visual-js/visual/src/cli/common-options.ts @@ -17,7 +17,7 @@ const regionParser = ( export const regionOption = new Option( '-r, --region ', - 'The Sauce Labs region. Options: us-west-1, eu-central-1 (Default: "us-west-1)"', + 'The Sauce Labs region. Options: us-west-1, eu-central-1', ) - .argParser(regionParser) - .default(VisualApiRegion.fromName('us-west-1')); + .default(VisualApiRegion.fromName('us-west-1'), 'us-west-1') + .argParser(regionParser);