Skip to content

Conversation

@yamcodes
Copy link
Owner

@yamcodes yamcodes commented Dec 31, 2025

Closes #670

Summary by CodeRabbit

  • Refactor

    • Updated the vite-plugin to use Vite's configResolved hook for better alignment with native Vite architecture.
  • Tests

    • Updated test suite to reflect the refactored hook implementation.
  • Chores

    • Added VSCode tasks configuration for streamlined testing with vitest.

✏️ Tip: You can customize this high-level summary in your review settings.

@yamcodes yamcodes linked an issue Dec 31, 2025 that may be closed by this pull request
@changeset-bot
Copy link

changeset-bot bot commented Dec 31, 2025

🦋 Changeset detected

Latest commit: b2c00b9

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@arkenv/vite-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions bot added docs Improvements or additions to documentation @arkenv/vite-plugin Issues or Pull Requests involving the Vite plugin for ArkEnv tests This issue or PR is about adding, removing or changing tests. labels Dec 31, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 31, 2025

Walkthrough

The vite-plugin is refactored to use Vite's configResolved hook instead of the config hook, receiving the fully resolved configuration. The plugin now mutates config.define to merge environment mappings instead of returning them directly. Tests and tooling are correspondingly updated.

Changes

Cohort / File(s) Summary
Changeset metadata
.changeset/cold-lemons-cut.md
Patch version bump documenting the plugin refactor to use Vite's configResolved hook.
Development configuration
.vscode/tasks.json
Introduces a background VSCode test task running the "test" npm script with vitest, configured with TSC watch problem matcher.
Plugin implementation
packages/vite-plugin/src/index.ts
Hook changed from config(config, { mode }) to configResolved(config). Mode now accessed via config.mode. Generated define mappings merged into config.define via mutation rather than direct return.
Plugin unit tests
packages/vite-plugin/src/index.test.ts
All test invocations updated to call configResolved with a mock config object instead of config. Mock context patterns replaced with simple { mode, define } objects. Expectations adjusted to inspect mockConfig.define directly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

@arkenv/vite-plugin, tests

Poem

🐰 A hook hops from config to resolved at last,
Where envs find their home in define so fast,
Vite's native path, now the plugin does tread,
Mutation brings shape to where types are spread!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Out of Scope Changes check ❓ Inconclusive The changeset introduces a VSCode tasks.json file for testing infrastructure, which is a minor supporting change not directly related to the plugin refactoring objective. Clarify whether the VSCode tasks.json addition is necessary for the configResolved refactoring or should be separated into a distinct infrastructure pull request.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately summarizes the main change: refactoring the plugin to use Vite's configResolved hook instead of the config hook.
Linked Issues check ✅ Passed The implementation successfully replaces the config hook with configResolved, accesses finalized config values, preserves define for type injection, and aligns with issue #670 requirements.
✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 31, 2025

Open in StackBlitz

npm i https://pkg.pr.new/arkenv@682
npm i https://pkg.pr.new/@arkenv/bun-plugin@682
npm i https://pkg.pr.new/@arkenv/vite-plugin@682

commit: b2c00b9

@arkenv-bot
Copy link
Contributor

arkenv-bot bot commented Dec 31, 2025

📦 Bundle Size Report

Package Size Limit Diff Status
@arkenv/vite-plugin 1.6 kB 2 kB +0.6%

All size limits passed!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/vite-plugin/src/index.ts (1)

54-91: Move config.define mutation to the config hook instead of configResolved.

Vite's plugin API documentation explicitly states that configResolved is for reading the final resolved config only—not for mutations. The config hook (which runs before resolution) is the standard approach for modifying configuration. While the current approach with @ts-expect-error works in practice, it violates Vite's documented API contract and could break if Vite enforces immutability on the resolved config object in future versions.

The fix: Return a partial config object from the config hook with the define options merged in, rather than mutating in configResolved. This aligns with Vite's plugin patterns and removes the type suppression.

🧹 Nitpick comments (1)
packages/vite-plugin/src/index.ts (1)

86-90: Document why @ts-expect-error is necessary here.

While the comment explains that config.define is mutable in practice despite being readonly in types, consider adding a more detailed explanation of:

  • Why mutation in configResolved was chosen over using the config hook
  • The exploratory/experimental nature of this approach (as noted in the PR objectives)
  • Any known limitations or future considerations

This helps future maintainers understand the intentional deviation from TypeScript's type safety.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 111f48d and b2c00b9.

📒 Files selected for processing (4)
  • .changeset/cold-lemons-cut.md
  • .vscode/tasks.json
  • packages/vite-plugin/src/index.test.ts
  • packages/vite-plugin/src/index.ts
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/coding-guidelines.mdc)

**/*.{ts,tsx}: Prefer type over interface for type definitions in TypeScript
Use TypeScript 5.1+ features when appropriate
Leverage const type parameters for better inference in TypeScript
Use JSDoc comments for public APIs
Use tabs for indentation (configured in Biome)
Use double quotes for strings (configured in Biome)
Organize imports automatically (Biome handles this)
Avoid explicit types when TypeScript can infer them (noInferrableTypes error)
Use as const where appropriate for immutable values (useAsConstAssertion error)
Don't reassign function parameters (noParameterAssign error)
Place default parameters last in function signatures (useDefaultParameterLast error)
Always initialize enum values (useEnumInitializers error)
Declare one variable per statement (useSingleVarDeclarator error)
Avoid unnecessary template literals (noUnusedTemplateLiteral error)
Prefer Number.parseInt over global parseInt (useNumberNamespace error)
Use kebab-case for TypeScript filenames (e.g., create-env.ts)
Use camelCase for function names (e.g., createEnv)
Use PascalCase for type names (e.g., ArkEnvError)
Use UPPER_SNAKE_CASE for environment variables and constants
Include examples in JSDoc comments when helpful for public APIs
Document complex type logic with JSDoc comments
Use ArkEnvError for environment variable validation errors
Provide clear, actionable error messages that include the variable name and expected type

**/*.{ts,tsx}: Use createEnv(schema) function (or default import as arkenv) to create validated environment objects in TypeScript
Use built-in validators (host, port, url, email) from ArkEnv when available instead of custom ArkType schemas
Provide default values for optional environment variables using ArkType syntax (e.g., 'boolean = false')
Use ArkEnvError for environment variable errors instead of generic Error types
For environment schema definition, use ArkType string literal syntax for enumerated values (e.g., "'deve...

Files:

  • packages/vite-plugin/src/index.ts
  • packages/vite-plugin/src/index.test.ts
**/index.ts

📄 CodeRabbit inference engine (.cursor/rules/coding-guidelines.mdc)

Use barrel exports (index.ts) for package entry points

Files:

  • packages/vite-plugin/src/index.ts
**/*.test.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/coding-guidelines.mdc)

Co-locate tests with components: Component.tsx next to Component.test.tsx

**/*.test.{ts,tsx}: Use Vitest for unit and integration tests
Test individual functions, components, and hooks in isolation with mocked dependencies in unit tests
Unit tests should focus on individual function logic and edge cases, component rendering and props, error handling and validation, and type checking
Unit tests should execute in less than 100ms per test
Mock external dependencies (clipboard, network, etc.) in unit tests
Co-locate unit test files with source files using naming convention: source file → test file (e.g., create-env.ts → create-env.test.ts)
Test component behavior, not aesthetics, and focus on what users can do and what the component guarantees through its API
Test component public API (props, events, and component contract), user behavior (clicks, typing, focus, keyboard, ARIA), state transitions, accessibility, and side effects in component tests
Do not test pure styling or CSS classes, library internals (Radix/shadcn), implementation details (hooks, setState, private variables), or visual variants in component tests
Use Testing Library with user-event for real user simulation in component tests
Query by role, name, label, and text (accessibility first) in component tests
Use beforeEach/afterEach for cleanup, not beforeAll/afterAll when possible
Keep tests fast, deterministic, and parallelizable
Mock at component boundaries (network, time, context)

Create unit tests with .test.ts or .test.tsx suffix located alongside source files, testing individual functions and components in isolation with mocked dependencies

Files:

  • packages/vite-plugin/src/index.test.ts
packages/vite-plugin/src/**/*.test.ts

📄 CodeRabbit inference engine (.cursor/rules/test-patterns.mdc)

packages/vite-plugin/src/**/*.test.ts: Test the Vite plugin using the with-vite-react example as a fixture and validate that the plugin works with real Vite projects
Use fixture-based testing pattern for Vite plugin tests by placing fixtures in fixtures directory

Files:

  • packages/vite-plugin/src/index.test.ts
**/*.{test,integration.test}.{ts,tsx}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

**/*.{test,integration.test}.{ts,tsx}: Use Vitest's describe/it structure for all test files
Test both success and failure cases in unit and integration tests
Mock process.env in unit tests to test different environment variable scenarios

Files:

  • packages/vite-plugin/src/index.test.ts
🧠 Learnings (18)
📓 Common learnings
Learnt from: danciudev
Repo: yamcodes/arkenv PR: 614
File: packages/vite-plugin/src/index.test.ts:641-654
Timestamp: 2025-12-26T19:27:11.710Z
Learning: In packages/vite-plugin/src/**/*.test.ts: The test suite uses `env.test` files (without leading dot) as test fixtures that are manually read by the `readTestConfig` helper function and stubbed into process.env with `vi.stubEnv`, not as files to be read by Vite's loadEnv during tests.
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to packages/vite-plugin/src/**/*.test.ts : Use fixture-based testing pattern for Vite plugin tests by placing fixtures in __fixtures__ directory
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to packages/vite-plugin/src/**/*.test.ts : Test the Vite plugin using the with-vite-react example as a fixture and validate that the plugin works with real Vite projects
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to packages/vite-plugin/src/**/*.test.ts : Use fixture-based testing pattern for Vite plugin tests by placing fixtures in __fixtures__ directory

Applied to files:

  • .changeset/cold-lemons-cut.md
  • packages/vite-plugin/src/index.ts
  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to packages/vite-plugin/src/**/*.test.ts : Test the Vite plugin using the with-vite-react example as a fixture and validate that the plugin works with real Vite projects

Applied to files:

  • .changeset/cold-lemons-cut.md
  • packages/vite-plugin/src/index.ts
  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.test.{ts,tsx} : Use Vitest for unit and integration tests

Applied to files:

  • .vscode/tasks.json
  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-11-24T16:04:11.901Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/monorepo.mdc:0-0
Timestamp: 2025-11-24T16:04:11.901Z
Learning: Applies to turbo.json : Turborepo tasks are defined in turbo.json with common tasks: build, dev, typecheck, test, and test:e2e

Applied to files:

  • .vscode/tasks.json
📚 Learning: 2025-12-23T07:09:57.130Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-23T07:09:57.130Z
Learning: Applies to **/*.test.{ts,tsx} : Create unit tests with `.test.ts` or `.test.tsx` suffix located alongside source files, testing individual functions and components in isolation with mocked dependencies

Applied to files:

  • .vscode/tasks.json
  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.test.{ts,tsx} : Co-locate unit test files with source files using naming convention: source file → test file (e.g., create-env.ts → create-env.test.ts)

Applied to files:

  • .vscode/tasks.json
📚 Learning: 2025-12-26T19:27:11.710Z
Learnt from: danciudev
Repo: yamcodes/arkenv PR: 614
File: packages/vite-plugin/src/index.test.ts:641-654
Timestamp: 2025-12-26T19:27:11.710Z
Learning: In packages/vite-plugin/src/**/*.test.ts: The test suite uses `env.test` files (without leading dot) as test fixtures that are manually read by the `readTestConfig` helper function and stubbed into process.env with `vi.stubEnv`, not as files to be read by Vite's loadEnv during tests.

Applied to files:

  • .vscode/tasks.json
  • packages/vite-plugin/src/index.ts
📚 Learning: 2025-12-23T07:09:57.130Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-23T07:09:57.130Z
Learning: Applies to **/*.{test,integration.test}.{ts,tsx} : Use Vitest's `describe`/`it` structure for all test files

Applied to files:

  • .vscode/tasks.json
  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-26T19:27:06.951Z
Learnt from: danciudev
Repo: yamcodes/arkenv PR: 614
File: packages/vite-plugin/src/index.test.ts:641-654
Timestamp: 2025-12-26T19:27:06.951Z
Learning: In packages/vite-plugin/src/index.test.ts, tests that rely on env.test fixtures are read by the readTestConfig helper and injected via vi.stubEnv into process.env, not loaded by Vite's loadEnv during tests. Treat env.test files as fixtures used for environment setup, and ensure test code does not rely on Vite's loadEnv to read them. If adding new tests that use a similar fixture strategy, follow the same pattern: read fixtures through readTestConfig and stub into process.env, rather than permitting Vite to load them automatically.

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-23T07:09:57.130Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-23T07:09:57.130Z
Learning: Applies to **/*.{test,integration.test}.{ts,tsx} : Mock `process.env` in unit tests to test different environment variable scenarios

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.test.{ts,tsx} : Test individual functions, components, and hooks in isolation with mocked dependencies in unit tests

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.integration.test.{ts,tsx} : Test how multiple units (components, hooks, functions) work together without mocking their interactions in integration tests

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.integration.test.{ts,tsx} : Integration tests should focus on component and hook interactions, function composition and data flow, real dependencies between units, and state synchronization across boundaries

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-23T07:09:57.130Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-23T07:09:57.130Z
Learning: Applies to **/*.{ts,tsx} : Use `createEnv(schema)` function (or default import as `arkenv`) to create validated environment objects in TypeScript

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-11-24T16:03:45.295Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/arktype.mdc:0-0
Timestamp: 2025-11-24T16:03:45.295Z
Learning: Applies to packages/arkenv/**/*.ts : Keep environment variable schemas readable and TypeScript-like using ArkType syntax

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.test.{ts,tsx} : Mock at component boundaries (network, time, context)

Applied to files:

  • packages/vite-plugin/src/index.test.ts
📚 Learning: 2025-12-12T13:20:01.954Z
Learnt from: CR
Repo: yamcodes/arkenv PR: 0
File: .cursor/rules/test-patterns.mdc:0-0
Timestamp: 2025-12-12T13:20:01.954Z
Learning: Applies to **/*.test.{ts,tsx} : Mock external dependencies (clipboard, network, etc.) in unit tests

Applied to files:

  • packages/vite-plugin/src/index.test.ts
🧬 Code graph analysis (1)
packages/vite-plugin/src/index.ts (2)
packages/vite-plugin/src/__fixtures__/with-env-dir/index.ts (1)
  • config (2-5)
packages/arkenv/src/create-env.ts (1)
  • createEnv (65-94)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: test-e2e (a11y)
  • GitHub Check: test-e2e (e2e)
  • GitHub Check: test-build (latest)
  • GitHub Check: test-typesafety
  • GitHub Check: test-build (lts/*)
  • GitHub Check: Deploy-Preview
🔇 Additional comments (4)
.changeset/cold-lemons-cut.md (1)

1-7: LGTM! Clear documentation of the refactor.

The changeset accurately describes the migration to configResolved hook and appropriately categorizes this as a patch-level change.

packages/vite-plugin/src/index.test.ts (3)

104-139: LGTM! Tests properly updated for configResolved hook.

The tests correctly verify the plugin exposes the configResolved hook and that it calls createEnv with the expected parameters. The mock setup and invocation pattern align with the new hook-based approach.


141-502: Excellent test coverage of the define mutation behavior.

The test suite comprehensively covers:

  • Environment variable transformation and type coercion
  • Edge cases (null, undefined, empty string, zero, false)
  • Prefix filtering (default, custom, array of prefixes)
  • envDir configuration (custom, default, missing)
  • Error propagation

All tests properly verify that mockConfig.define is mutated as expected, aligning with the refactored plugin implementation.


505-605: Well-structured integration tests for envDir fixture.

The integration tests effectively validate the real-world behavior of custom envDir configuration using the with-env-dir fixture. The reusable createBuildConfig factory function and clear test scenarios (success, failure, prioritization) demonstrate thorough validation of the feature.

Based on learnings, the fixture-based testing pattern is correctly applied here.

"type": "npm",
"script": "test",
"group": "test",
"problemMatcher": ["$tsc-watch"],
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

cat -n .vscode/tasks.json

Repository: yamcodes/arkenv

Length of output: 367


🌐 Web query:

VSCode built-in problem matcher for vitest testing framework

💡 Result:

Short answer: VS Code has no built-in problem matcher specifically for Vitest. Use one of these approaches instead:

  • Use the official Vitest VS Code extension / Test Explorer to run and view test results in the editor. [2]
  • Configure Vitest to emit a machine-readable report (json or junit) and consume that (e.g. via a task that writes a report file, or a CI parser). Vitest supports json/junit reporters and writing output to a file. [1]
  • Create a custom tasks.json problemMatcher (regex-based) that matches Vitest's terminal output if you want failures to appear in the Problems panel. See the VS Code problem matcher docs for pattern/loop/fileLocation details. [3]

Links:


Use a custom problem matcher or the Vitest VS Code extension for this task.

The $tsc-watch problem matcher is designed for TypeScript compiler output, not vitest, and will not properly capture test failures in the Problems panel. VSCode has no built-in problem matcher for vitest; instead, either:

  • Install and use the Vitest VS Code extension to run tests directly in the editor
  • Create a custom regex-based problem matcher in this task configuration that captures vitest's output format
🤖 Prompt for AI Agents
.vscode/tasks.json around line 8: the task currently uses the "$tsc-watch"
problemMatcher which is for the TypeScript compiler and will not capture vitest
failures; replace it with either nothing and run tests via the Vitest VS Code
extension, or define and reference a custom problemMatcher that uses regexes
matching vitest output (errors, file:line:col, and test failure summaries) so
test failures appear in the Problems panel; update the task to point to that
custom matcher (or remove the matcher and document using the Vitest extension).

@yamcodes
Copy link
Owner Author

I'm closing this. Since we need to mutate the config's define in the core plugin logic, that must be the final operation before we can get default values (before configResolved). This PR hacks away at the issue by forcing the (read-only) define to mutate within configResolved. That's not scalable.

@yamcodes yamcodes closed this Dec 31, 2025
@yamcodes yamcodes deleted the 670-refactor-plugin-to-use-configresolved-hook branch December 31, 2025 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

@arkenv/vite-plugin Issues or Pull Requests involving the Vite plugin for ArkEnv docs Improvements or additions to documentation tests This issue or PR is about adding, removing or changing tests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refactor plugin to use configResolved hook

2 participants