Files
2026-07-13 12:37:52 +08:00

86 lines
4.1 KiB
Markdown

<!--
Copyright 1999-2026 Alibaba Group Holding Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# OpenAPI IT Coverage Registry
This registry records which Nacos HTTP APIs are covered by
`test/openapi-test` integration tests and where to find the scenario matrix for
each API surface. It is meant for maintainers and agents to quickly locate
coverage before adding or debugging an IT.
## Maintenance Rules
- Update the matching scenario document whenever an OpenAPI/AdminAPI/ConsoleAPI
IT class is added, removed, or gains meaningful scenario coverage.
- Keep the class Javadoc `Scenario coverage` section or the scenario document
as the source of truth for what a class verifies.
- Record API scenario coverage, not line or branch coverage. Each row should
identify expected capability, boundary/validation, and exception/error
handling coverage when those scenario groups are practical.
- If an exposed success path is intentionally not executed because it mutates
risky runtime or storage state, record the reason in the scenario cell.
## Status Legend
| Status | Meaning |
| --- | --- |
| Covered | The current IT verifies the expected behavior and its important result shape. |
| Partial | The current IT verifies representative behavior, but important public API scenarios remain. |
| Pending | No IT currently verifies this public API scenario. |
## Coverage Calculation
Coverage is calculated from the API-surface rows in the scenario documents. One
row may cover multiple closely coupled HTTP operations in a workflow, such as a
create/query/update/delete API group. Strict coverage counts only `Covered`
rows. Effective coverage counts `Covered` rows as `1.0` and `Partial` rows as
`0.5`.
| API surface | Scenario rows | Covered | Partial | Pending | Strict coverage | Effective coverage |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Client OpenAPI | 8 | 8 | 0 | 0 | 100.00% | 100.00% |
| Admin API | 35 | 30 | 5 | 0 | 85.71% | 92.86% |
| Console API | 27 | 25 | 2 | 0 | 92.59% | 96.30% |
| Total | 70 | 63 | 7 | 0 | 90.00% | 95.00% |
Partial rows are documented in the matching scenario document. The current
partial set is limited to operations whose remaining success paths mutate
shared runtime/storage state, require publish-pipeline plugin data, or require
an external LLM provider.
Plugin management API IT covers detail metadata, request validation, not-found
responses, and rejection of config updates for non-configurable plugins. The
runtime-configurable success path remains partial because the standalone test
distribution currently has no built-in plugin implementing `PluginConfigSpec`;
full-map replacement, source fallback, effect mode checks, masking, same-source
sensitive value preservation, and retained-source apply failure/retry are
covered in core unit tests.
Config scenario rows cover the current 3.3 Config model. Blank or omitted
namespace inputs are expected to use `public`, and beta/tag gray behavior is
verified through the current gray model. Removed pre-3.0 compatibility
migration paths, including empty-tenant storage migration and legacy
`config_info_beta` / `config_info_tag` old-table migration, are not counted as
missing OpenAPI IT coverage.
## Coverage Documents
| API surface | Scenario document | Test package |
| --- | --- | --- |
| Client OpenAPI | [CLIENT_API_TEST_SCENARIOS.md](CLIENT_API_TEST_SCENARIOS.md) | `src/test/java/com/alibaba/nacos/test/openapi/client` |
| Admin API | [ADMIN_API_TEST_SCENARIOS.md](ADMIN_API_TEST_SCENARIOS.md) | `src/test/java/com/alibaba/nacos/test/adminapi` |
| Console API | [CONSOLE_API_TEST_SCENARIOS.md](CONSOLE_API_TEST_SCENARIOS.md) | `src/test/java/com/alibaba/nacos/test/consoleapi` |