Skip to content

Migrate pp gateway, managementapp, solution, and tenant commands to Zod#7423

Open
waldekmastykarz wants to merge 3 commits into
pnp:mainfrom
waldekmastykarz:waldekmastykarz-didactic-doodle
Open

Migrate pp gateway, managementapp, solution, and tenant commands to Zod#7423
waldekmastykarz wants to merge 3 commits into
pnp:mainfrom
waldekmastykarz:waldekmastykarz-didactic-doodle

Conversation

@waldekmastykarz

Copy link
Copy Markdown
Member

Summary

Migrates the following commands from the legacy #initOptions()/#initValidators()/#initTelemetry() pattern to Zod schema-based validation:

  • pp gateway get
  • pp managementapp add
  • pp managementapp list
  • pp solution get
  • pp solution list
  • pp solution publish
  • pp solution publisher add
  • pp solution publisher get
  • pp solution publisher list
  • pp solution publisher remove
  • pp solution remove
  • pp tenant settings set

Changes

  • Replaced #initOptions(), #initValidators(), #initTelemetry(), #initTypes(), and #initOptionSets() with exported Zod schemas
  • Added schema getter and getRefinedSchema() where cross-field validation is needed
  • Updated all spec files to use commandOptionsSchema.safeParse() for validation tests and commandOptionsSchema.parse() for action tests
  • Added "fails validation with unknown options" tests to all spec files

Closes #7314

Migrates the following commands from legacy #initOptions()/#initValidators()/
#initTelemetry() pattern to Zod schema-based validation:

- pp gateway get
- pp managementapp add
- pp managementapp list
- pp solution get
- pp solution list
- pp solution publish
- pp solution publisher add
- pp solution publisher get
- pp solution publisher list
- pp solution publisher remove
- pp solution remove
- pp tenant settings set

Closes pnp#7314

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates a set of Power Platform (pp) commands from the legacy initOptions/initValidators/initTelemetry pattern to Zod schema-based option definition/validation, and updates the corresponding unit tests to validate options through the schema.

Changes:

  • Introduces exported Zod options schemas (with schema / getRefinedSchema) across the migrated pp commands.
  • Reworks validation tests to use commandOptionsSchema.safeParse() and action tests to pass commandOptionsSchema.parse(...).
  • Adds “fails validation with unknown options” coverage to the updated spec files.

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 21 comments.

Show a summary per file
File Description
src/m365/pp/commands/tenant/tenant-settings-set.ts Migrates tenant settings set command to Zod schema + refined “at least one option” validation
src/m365/pp/commands/tenant/tenant-settings-set.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-remove.ts Migrates solution remove command to Zod schema + option-set refinement
src/m365/pp/commands/solution/solution-remove.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-publisher-remove.ts Migrates publisher remove command to Zod schema + option-set refinement
src/m365/pp/commands/solution/solution-publisher-remove.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-publisher-list.ts Migrates publisher list command to Zod schema
src/m365/pp/commands/solution/solution-publisher-list.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-publisher-get.ts Migrates publisher get command to Zod schema + option-set refinement
src/m365/pp/commands/solution/solution-publisher-get.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-publisher-add.ts Migrates publisher add command to Zod schema and updates validation logic
src/m365/pp/commands/solution/solution-publisher-add.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-publish.ts Migrates solution publish command to Zod schema + option-set refinement
src/m365/pp/commands/solution/solution-publish.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-list.ts Migrates solution list command to Zod schema
src/m365/pp/commands/solution/solution-list.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/solution/solution-get.ts Migrates solution get command to Zod schema + option-set refinement
src/m365/pp/commands/solution/solution-get.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/managementapp/managementapp-list.ts Adds schema for managementapp list (global options only)
src/m365/pp/commands/managementapp/managementapp-list.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/managementapp/managementapp-add.ts Migrates managementapp add command to Zod schema + option-set refinement
src/m365/pp/commands/managementapp/managementapp-add.spec.ts Updates tests to use schema parsing + unknown option validation coverage
src/m365/pp/commands/gateway/gateway-get.ts Migrates gateway get command to Zod schema
src/m365/pp/commands/gateway/gateway-get.spec.ts Updates tests to use schema parsing + unknown option validation coverage

Comment thread src/m365/pp/commands/solution/solution-publish.ts
Comment thread src/m365/pp/commands/tenant/tenant-settings-set.ts
Comment thread src/m365/pp/commands/tenant/tenant-settings-set.ts
Comment thread src/m365/pp/commands/tenant/tenant-settings-set.ts Outdated
Comment thread src/m365/pp/commands/solution/solution-remove.ts
Comment thread src/m365/pp/commands/solution/solution-publish.ts Outdated
Comment thread src/m365/pp/commands/managementapp/managementapp-add.ts
Comment thread src/m365/pp/commands/managementapp/managementapp-add.ts
Comment thread src/m365/pp/commands/managementapp/managementapp-add.ts Outdated
Comment thread src/m365/pp/commands/gateway/gateway-get.ts
waldekmastykarz and others added 2 commits June 26, 2026 11:50
- Changed message: to error: in all refine() calls to match repo convention
- Fixed args.options.environment to args.options.environmentName in solution-publish.ts

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate pp gateway, pp managementapp, pp solution, and pp tenant commands to Zod

2 participants