Skip to content

change tests directory structure #9133

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

nadavMiz
Copy link
Contributor

@nadavMiz nadavMiz commented Jul 3, 2025

Describe the Problem

The existing tests are not well organized, making it difficult to understand what each test is validating and where new tests should be added.

Explain the Changes

  1. change the tests directory structure to the following structure:
    a. unit tests - tests for specific class / functions
    b integration tests - tests for a whole part of the system or functionality (using coretest)
    c system tests - tests for the entire system (using full system)
  2. moved coretest files to the framework directory in a coretest sub-directory
  3. moved index files to the framework directory in a index sub-directory
  4. moved different_clients directory out of the unit_tests dir and into tests root dir
  5. combined jest and mocha tests together to the same directories
  6. replaced get_coretest_path function that gets the name of the coretest needed with require_coretests function that requires the coretest needed. did it to solve issue with coretest path being different for different tests
  7. fixed DeepScan issues with tests:
    a. tests_agent_blocks_verifier.js - add null check
    b. test_lru - remove unused assignment of item variable

new directory structure:

src/test/
├── common
│   └── lifecycle_test_common.js
├── different_clients
│   ├── go_aws_sdkv2_client.go
│   └── run_go_sdkv2_client_script.js
├── external_tests 
│   ├── ceph_s3_tests <- directory
│   ├── mint <- directory
│   ├── test_go_sdkv2_script.js
│   ├── external_tests_utils.js
│   └── warp <- directory
├── framework
│   ├── convert.js
│   ├── namespace_cache_tests_list.js
│   ├── namespace_test_job.yaml
│   ├── pipeline_tests_list.js
│   ├── prepare_podman_env.sh
│   ├── report.js
│   ├── report_schema.js
│   ├── run_npm_test_on_test_container.sh
│   ├── run_test_job.sh
│   ├── sanity_tests_list.js
│   ├── server.js
│   ├── system_tests_list.js
│   ├── test_account.yaml
│   └── test_job.yaml
├── integration_tests
│   ├── api
│   │   ├── iam
│   │   │   └── test_nc_iam_basic_integration.js
│   │   ├── s3
│   │   │   ├── test_bucket_logging.js
│   │   │   ├── test_bucket_replication.js
│   │   │   ├── test_lifecycle.js
│   │   │   ├── test_namespace_auth.js
│   │   │   ├── test_notifications.js
│   │   │   ├── test_nsfs_versioning_gpfs.js
│   │   │   ├── test_public_access_block.js
│   │   │   ├── test_s3_bucket_policy.js
│   │   │   ├── test_s3_encryption.js
│   │   │   ├── test_s3_list_buckets.js
│   │   │   ├── test_s3_list_objects.js
│   │   │   ├── test_s3_ops.js
│   │   │   └── test_s3_worm.js
│   │   └── sts
│   │       └── test_sts.js
│   ├── db
│   │   ├── test_md_aggregator_unit.js
│   │   ├── test_mdsequence.js
│   │   ├── test_md_store.js
│   │   ├── test_nodes_store.js
│   │   ├── test_postgres_upgrade.js
│   │   └── test_system_store.js
│   ├── internal
│   │   ├── test_agent_blocks_reclaimer.js
│   │   ├── test_agent_blocks_verifier.js
│   │   ├── test_dedup.js
│   │   ├── test_encryption.js
│   │   ├── test_host_server.js
│   │   ├── test_map_builder.js
│   │   ├── test_map_client.js
│   │   ├── test_map_deleter.js
│   │   ├── test_map_reader.js
│   │   ├── test_node_allocator.js
│   │   ├── test_node_server.js
│   │   ├── test_object_io.js
│   │   ├── test_system_servers.js
│   │   ├── test_tiering_ttl_worker.js
│   │   ├── test_tiering_upload.js
│   │   └── test_upgrade_scripts.js
│   ├── nc
│   │   ├── cli
│   │   │   ├── test_nc_account_cli.test.js
│   │   │   ├── test_nc_anonymous_cli.test.js
│   │   │   ├── test_nc_bucket_cli.test.js
│   │   │   ├── test_nc_cli.js
│   │   │   └── test_nc_connection_cli.test.js
│   │   ├── lifecycle
│   │   │   └── test_nc_lifecycle_expiration.js
│   │   ├── test_nc_with_a_couple_of_forks.js
│   │   └── tools
│   │       ├── test_cli_diagnose.test.js
│   │       ├── test_cli_upgrade.test.js
│   │       ├── test_nc_bucket_logging.js
│   │       ├── test_nc_health.js
│   │       ├── test_nc_online_upgrade_cli_integrations.js
│   │       └── test_nc_online_upgrade_s3_integrations.js
│   └── nsfs
│       ├── test_bucketspace_versioning.js
│       ├── test_nc_versioning_integration.js
│       ├── test_nsfs_concurrency.test.js
│       ├── test_nsfs_integration.js
│       └── test_versioning_concurrency.test.js
├── lifecycle
│   └── common.js
├── pipeline
│   ├── account_test.js
│   ├── config-local.js
│   ├── dataset.js
│   ├── namespace_cache_large_file_test.js
│   ├── namespace_cache_normal_test.js
│   ├── namespace_cache_range_read_test.js
│   ├── namespace_test.js
│   ├── quota_test.js
│   ├── README.md
│   ├── run_dataset.js
│   ├── run_namespace_cache_tests.js
│   └── system_config.js
├── qa
│   ├── agents_matrix.js
│   ├── capacity.js
│   ├── cloud_test.js
│   ├── data_availability_test.js
│   ├── data_resiliency_test.js
│   ├── load.js
│   ├── rebuild_replicas_test.js
│   ├── reclaim_test.js
│   └── tests_report_summary.js
├── scripts
│   ├── ec_in_db.js
│   └── reset_cluster.sh
├── system_tests
│   ├── external_tests_utils.js
│   ├── mongodb_defaults.js
│   ├── nc_test_utils.js
│   ├── README.md
│   ├── run_sanity_test_on_test_container.sh
│   ├── run_system_tests_on_tests_container.sh
│   ├── sanity_build_test.js
│   ├── test_bucket_access.js
│   ├── test_bucket_placement.js
│   ├── test_build_chunks.js
│   ├── test_cloud_pools.js
│   ├── test_files_ul.js
│   ├── test_lifecycle.js
│   ├── test_md_aggregator.js
│   ├── test_node_failure.js
│   ├── test_s3_authentication.js
│   ├── test_utils.js
│   └── upgradeonly.js
├── unit_tests
│   ├── api
│   │   ├── iam
│   │   │   └── test_iam_ops_input_validation.test.js
│   │   └── s3
│   │       ├── test_list_object.test.js
│   │       ├── test_ns_list_objects.js
│   │       └── test_s3select.js
│   ├── db
│   │   ├── test_migration_to_postgres.js
│   │   ├── test_postgres_client.js
│   │   └── test_schema_keywords.js
│   ├── internal
│   │   ├── test_bucket_chunks_builder.js
│   │   ├── test_bucket_diff.test.js
│   │   ├── test_bucket_log_based_replication.test.js
│   │   ├── test_chunk_coder.js
│   │   ├── test_chunk_config_utils.js
│   │   ├── test_chunked_content_decoder.test.js
│   │   ├── test_chunk_splitter.js
│   │   ├── test_debug_module.js
│   │   ├── test_file_writer.test.js
│   │   ├── test_keys_semaphore.js
│   │   ├── test_mapper.js
│   │   ├── test_mirror_writer.js
│   │   ├── test_namespace_cache.js
│   │   ├── test_newline_reader.test.js
│   │   └── test_noobaa_s3_client.test.js
│   ├── native
│   │   ├── test_fs_napi_concurrency.test.js
│   │   ├── test_nb_native_b64.js
│   │   ├── test_nb_native_fs.js
│   │   ├── test_nb_native_gpfs.js
│   │   └── test_nb_native_hashes.js
│   ├── nc
│   │   ├── configuration
│   │   │   ├── test_config_dir_restructure_upgrade_script.test.js
│   │   │   ├── test_config_dir_structure.test.js
│   │   │   ├── test_config_fs_backward_compatibility.test.js
│   │   │   ├── test_config_fs.test.js
│   │   │   ├── test_nc_account_invalid_mkm_integration.test.js
│   │   │   ├── test_nc_master_keys_exec.test.js
│   │   │   ├── test_nc_master_keys.test.js
│   │   │   ├── test_nc_nsfs_bucket_schema_validation.test.js
│   │   │   ├── test_nc_nsfs_config_schema_validation.test.js
│   │   │   ├── test_nc_nsfs_new_buckets_path_validation.test.js
│   │   │   └── test_nc_upgrade_manager.test.js
│   │   └── lifecycle
│   │       ├── test_nc_lifecycle_gpfs_ilm_integration.test.js
│   │       ├── test_nc_lifecycle_posix_integration.test.js
│   │       └── test_nc_lifecycle.test.js
│   ├── nsfs
│   │   ├── test_accountspace_fs.test.js
│   │   ├── test_bucketspace_fs.js
│   │   ├── test_namespace_fs.js
│   │   ├── test_namespace_fs_mpu.js
│   │   ├── test_nsfs_access.js
│   │   ├── test_nsfs_glacier_backend.js
│   │   └── test_nsfs_versioning.js
│   └── utils
│       ├── signature_test_suite <- directory
│       ├── test_buffer_pool.js
│       ├── test_cloud_utils.js
│       ├── test_delayed_trigger.js
│       ├── test_entropy_utils.test.js
│       ├── test_fs_utils.js
│       ├── test_http_utils.js
│       ├── test_iam_utils.test.js
│       ├── test_keys_lock.js
│       ├── test_kmeans.js
│       ├── test_linked_list.js
│       ├── test_lru_cache.js
│       ├── test_lru.js
│       ├── test_nc_nsfs_account_schema_validation.test.js
│       ├── test_net_utils.test.js
│       ├── test_os_utils.test.js
│       ├── test_prefetch.js
│       ├── test_promise_utils.js
│       ├── test_range_stream.js
│       ├── test_rpc.js
│       ├── test_s3_utils.test.js
│       ├── test_semaphore.js
│       ├── test_sensitive_wrapper.js
│       ├── test_signature_utils.js
│       ├── test_ssl_utils.js
│       ├── test_url_utils.test.js
│       ├── test_v8_optimizations.js
│       ├── test_validation_utils.test.js
│       ├── test_wait_queue.js
│       └── test_zip_utils.js
├── unrelated <- unchanged directory 
├── utils -< unchanged besides new coretest and index directories 
│   ├── coretest
│   │   ├── coretest.js
│   │   └── nc_coretest.js
│   ├── index
│   │   ├── index.js
│   │   ├── nc_index.js
│   │   └── sudo_index.js
└── web
    ├── index.js
    ├── selenium.js
    └── test_create_system.js

Issues: Fixed #xxx / Gap #xxx

Testing Instructions:

  • Doc added/updated
  • Tests added

Summary by CodeRabbit

Summary by CodeRabbit

  • Documentation

    • Updated test documentation to reflect new test script locations and more flexible test command structures.
  • Chores

    • Updated test script paths and arguments across build scripts, Dockerfiles, and workflows.
    • Adjusted import paths throughout test files to match a reorganized directory structure.
    • Modified external test scripts to run from new external test directories instead of system test folders.
  • Refactor

    • Renamed and improved a utility function for loading test frameworks.
    • Standardized the way core test modules are imported in test files.
  • Tests

    • Removed obsolete test entry point and core test setup files.
    • Updated test runner entry points and script commands.
    • No changes to test logic; only import paths and structure were updated.

Copy link

coderabbitai bot commented Jul 3, 2025

## Walkthrough

This change reorganizes and updates the test infrastructure by moving test scripts and related files from `unit_tests` and `system_tests` directories into new `framework`, `utils`, and `external_tests` directories. All references, import paths, and test runner scripts are updated accordingly. Test entry points are deleted or relocated, and documentation and build scripts are revised to reflect the new structure.

## Changes

| Files/Groups                                                                                     | Change Summary                                                                                                                      |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| Makefile, .github/workflows/nightly-tests.yaml, src/deploy/NVA_build/Tests.Dockerfile, package.json | Update test script paths and arguments to new directory structure; update Mocha entry point; update Docker CMD and workflow scripts. |
| src/test/unit_tests/index.js, src/test/unit_tests/nc_index.js, src/test/unit_tests/sudo_index.js  | Deleted main test suite entry points; orchestration moved or restructured.                                                        |
| src/test/framework/run_npm_test_on_test_container.sh                                            | Change logic to use new test file paths for single test execution.                                                                |
| src/test/system_tests/test_utils.js                                                             | Rename and refactor `get_coretest_path` to `require_coretest`; update policy generation logic.                                    |
| src/test/integration_tests/**, src/test/unit_tests/**, src/test/external_tests/**                | Update all import/require paths to match new directory structure and module locations.                                            |
| src/test/external_tests/ceph_s3_tests/**, src/test/external_tests/mint/**, src/test/external_tests/warp/** | Update script and utility paths to new locations; adjust all related shell scripts and JS files.                                  |
| docs/NooBaaNonContainerized/CI&Tests.md                                                        | Update documentation commands to reflect new test entry points and directory layout.                                              |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant Developer
    participant Makefile
    participant Docker
    participant TestRunner (Mocha)
    participant TestScripts

    Developer->>Makefile: make test-<target>
    Makefile->>Docker: Run container with new test script path
    Docker->>TestRunner: Execute ./src/test/framework/run_npm_test_on_test_container.sh
    TestRunner->>TestScripts: Require test files from new locations
    TestScripts-->>TestRunner: Run tests and report results
    TestRunner-->>Docker: Exit code
    Docker-->>Makefile: Test results

Possibly related PRs

Suggested labels

size/XL


<!-- walkthrough_end -->
<!-- This is an auto-generated comment: all tool run failures by coderabbit.ai -->

> [!WARNING]
> There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.
> 
> <details>
> <summary>🔧 ast-grep (0.38.1)</summary>
> 
> <details>
> <summary>src/test/unit_tests/internal/test_bucket_diff.test.js</summary>
> 
> 
> 
> </details>
> 
> </details>
> 
> <details>
> <summary>🔧 ESLint</summary>
> 
> > If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.
> 
> npm error Exit handler never called!
> npm error This is an error with npm itself. Please report this error at:
> npm error   <https://github.com/npm/cli/issues>
> npm error A complete log of this run can be found in: /.npm/_logs/2025-07-08T11_13_28_163Z-debug-0.log
> 
> 
> 
> </details>

<!-- end of auto-generated comment: all tool run failures by coderabbit.ai -->
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=noobaa/noobaa-core&utm_content=9133):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->

@nadavMiz nadavMiz force-pushed the test_folders branch 11 times, most recently from ddc151b to cb65eba Compare July 6, 2025 09:33
@nadavMiz nadavMiz marked this pull request as ready for review July 6, 2025 10:04
Copy link

@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: 8

🔭 Outside diff range comments (3)
src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1)

53-58: Async arrow passed to describe is silently ignored

Mocha does not await async functions given to describe; the promise is dropped and failures inside the callback are swallowed.
Switch to a regular (synchronous) callback.

-describe('gather-logs flow', async => {
+describe('gather-logs flow', function () {
src/test/different_clients/test_go_sdkv2_script.js (1)

25-28: Restore GLOBAL env after test to avoid cross-suite pollution

process.env.AWS_* is overwritten but never reverted.
Capture the originals and restore them in an after() hook to prevent side-effects on subsequent tests.

-        process.env.AWS_ACCESS_KEY_ID = admin_access_key;
-        process.env.AWS_SECRET_ACCESS_KEY = admin_secret_key;
-        process.env.AWS_DEFAULT_REGION = config.DEFAULT_REGION;
+        const old_env = {
+            AWS_ACCESS_KEY_ID: process.env.AWS_ACCESS_KEY_ID,
+            AWS_SECRET_ACCESS_KEY: process.env.AWS_SECRET_ACCESS_KEY,
+            AWS_DEFAULT_REGION: process.env.AWS_DEFAULT_REGION,
+        };
+        Object.assign(process.env, {
+            AWS_ACCESS_KEY_ID: admin_access_key,
+            AWS_SECRET_ACCESS_KEY: admin_secret_key,
+            AWS_DEFAULT_REGION: config.DEFAULT_REGION,
+        });
+
+        this._restore_env = () => Object.assign(process.env, old_env);
...
+    mocha.after(function () {
+        if (this._restore_env) this._restore_env();
+    });
.github/workflows/nightly-tests.yaml (1)

14-18: Add the framework test runner script to the tester image

The script src/test/framework/run_npm_test_on_test_container.sh is present and executable in the repo (100755), but src/deploy/NVA_build/Tests.Dockerfile does not COPY it into the noobaa-tester image. As a result, invoking it in nightly CI will fail with “file not found.”

• In src/deploy/NVA_build/Tests.Dockerfile, after the other COPY lines (around line 58), add:

COPY ./src/test/framework/run_npm_test_on_test_container.sh \
     ./src/test/framework/run_npm_test_on_test_container.sh

• This ensures the script is included (with its executable bit) under ./src/test/framework inside the container.
• Nightly tests should then successfully locate and run ./src/test/framework/run_npm_test_on_test_container.sh.

♻️ Duplicate comments (12)
src/test/unit_tests/internal/test_debug_module.js (1)

5-10: Same alias advice as in test_chunk_coder.js

The added ../../../ prefixes have the same maintenance drawback; please see earlier comment.

src/test/integration_tests/api/s3/test_namespace_auth.js (1)

5-6: Path-alias remark duplicated

Import paths were deepened; refer to the first comment for rationale & suggestion.

Also applies to: 10-11, 21-21

src/test/unit_tests/internal/test_schema_keywords.js (1)

6-7: Alias recommendation duplicated

See initial comment regarding long relative paths.

src/test/integration_tests/api/s3/test_s3_ops.js (1)

8-10: Alias recommendation duplicated

Deep relative imports again—same suggestion applies.

Also applies to: 13-16

src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1)

9-17: Deep relative imports – same brittleness applies

These eight “../../../..” chains will suffer the same maintenance pain as noted in the S3 upgrade test.
Moving to path aliases (e.g. @utils/fs_utils) will make this large test suite re-org a one-time effort.

src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1)

8-17: Deep relative imports – same brittleness applies

See earlier comment regarding replacing multi-dot paths with root-level aliases.

src/test/integration_tests/internal/test_map_reader.js (2)

5-6: Align with new require_coretest() helper

Same issue as in test_tiering_upload.js – please use the centralized helper to stay consistent with the new directory layout.


18-18: Path brittleness

../../../server/object_services/map_reader is another fragile chain; consider the alias strategy suggested previously.

src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1)

6-12: Same note on brittle relative import depth

All six updated imports jump four directories back. An alias‐based approach (see previous comment) will keep these paths stable and save future PR noise when tests are reshuffled again.

src/test/integration_tests/db/test_system_store.js (2)

6-8: Relative-path churn

The shift to ../../framework/coretest/coretest & friends repeats the pattern already flagged—worth considering a root alias to prevent further path-length edits.


17-17: Import path comment duplicated

Same reasoning as above for ../../../server/... – an alias keeps this stable and clearer.

src/test/integration_tests/nc/cli/test_nc_cli.js (1)

9-20: Long relative imports lower readability

Five-level ../../../../../ hops are hard to scan. Adopting a project-root alias (e.g. @src, @util) would make these imports concise and remove the need for periodic path-fix PRs.

🧹 Nitpick comments (45)
src/test/unit_tests/internal/test_bucket_diff.test.js (1)

8-8: Inconsistent “.js” suffix may cause duplicate cache keys

Most code in this repo imports without the extension (e.g. require('./foo')).
Mixing both forms can lead to two separate cache entries (foo vs foo.js) under some bundlers / test runners.

-const replication_utils = require('../../../server/utils/replication_utils.js');
+const replication_utils = require('../../../server/utils/replication_utils');
src/test/unit_tests/native/test_nb_native_fs.js (1)

9-12: Avoid deep-relative paths – introduce a central alias/import helper

The triple-../.. chains are fragile and will break again on the next directory reshuffle.
Consider exposing util/* through a module-alias (e.g. @util/fs_utils) or adding the project root to NODE_PATH so imports stay one hop away regardless of file location.

src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1)

9-15: Same deep-relative-path smell as elsewhere

Five-level ../../../.. traversals are hard to read and error-prone. A path alias (or require_coretest() helper similar to the new core-test util) would improve maintainability.

src/test/integration_tests/internal/test_host_server.js (1)

8-8: Another fragile relative import

require('../../framework/coretest/coretest') will break if tests move again. Prefer the new require_coretest() utility or a module alias to decouple test files from directory depth.

src/test/integration_tests/api/s3/test_s3_list_buckets.js (1)

7-13: Consider uniform coretest bootstrap

Most updated tests now use the helper require_coretest() instead of hand-crafted relative paths. Adopting it here would remove two hard-coded traversals and keep the file consistent with the rest of the suite.

src/test/different_clients/test_go_sdkv2_script.js (1)

8-15: Path depth + env leakage

  1. Same deep-relative import issue – migrate to an alias/helper.
  2. Importing config three levels up while other tests use four suggests path inconsistencies; double-check the resolved file.
src/test/integration_tests/internal/test_dedup.js (1)

5-5: Prefer require_coretest() for consistency with new test framework

Most files that were touched in this PR now rely on the helper exported from system_tests/test_utils.js:

const { require_coretest } = require('<path>/system_tests/test_utils');
const coretest = require_coretest();

Using the helper keeps all core-test resolution logic in one place and avoids future breakage if its location changes again.

-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest            = require_coretest();
src/test/framework/run_npm_test_on_test_container.sh (1)

41-42: Quote the filename to avoid word-splitting

If the single-test path contains globbing chars or spaces, the current assignment breaks. A minimal hardening:

-command="./node_modules/mocha/bin/mocha.js src/test/${2}"
+command="./node_modules/mocha/bin/mocha.js src/test/${2//\"/}"

(or simply wrap "src/test/$2" in quotes).
Not critical, but improves robustness.

src/test/integration_tests/api/s3/test_bucket_logging.js (1)

7-10: Consider switching to centralized require_coretest() helper

Same rationale as in test_dedup.js – keeps all tests aligned with the new utility and avoids brittle relative paths.

-const coretest = require('../../../framework/coretest/coretest');
+const { require_coretest } = require('../../../system_tests/test_utils');
+const coretest            = require_coretest();
src/test/integration_tests/api/s3/test_s3_worm.js (1)

5-5: Prefer unified require_coretest() helper instead of hard-coded relative path

Most updated tests rely on require_coretest() from test_utils to resolve the correct coretest variant (debug/production) and hide deep ../../../framework/... paths that tend to break on future moves. Consider switching to the helper for consistency and maintainability:

-const coretest = require('../../../framework/coretest/coretest');
+const { require_coretest } = require('../../../system_tests/test_utils');
+const coretest = require_coretest();
src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1)

7-17: Good adoption of require_coretest() but paths are brittle

All six ../../../../ style imports resolve today, yet they couple the test to exact depth.
Long-term, consider using module-alias or the jest moduleNameMapper already present in the repo to shorten to util/fs_utils, manage_nsfs/constants, etc.
This keeps future moves from turning into path-editing marathons.

src/test/integration_tests/internal/test_node_server.js (1)

5-5: Align with require_coretest() helper

Same comment as for test_s3_worm.js: replace the deep relative require with the shared helper to stay consistent across the suite and avoid duplicate coretest instances.

-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest = require_coretest();
src/test/unit_tests/internal/test_chunk_coder.js (1)

11-19: Use a path-alias to avoid brittle “../../../..” hops

Deep relative paths couple the test code to the folder layout; any further refactor will require another mass-renaming. Consider configuring a root-alias (e.g. via NODE_PATH, module-alias, or Jest “moduleNameMapper”) so this becomes:

const nb_native     = require('util/nb_native');
const RandStream    = require('util/rand_stream');

Cleaner imports improve readability and make future moves cost-free.

src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1)

11-22: Deep relative imports fixed – consider central alias to avoid future churn

The new ../../../.. & ../../../ paths are correct given the move, but the 4-level back-tracking is brittle and will break again on the next refactor.
A small test/alias.js (or the existing require_coretest() helper) exporting pre-resolved project-root aliases would turn these into:

const { config, NamespaceFS, s3_utils, ... } = require('@root'); // example

leaving future directory reshuffles harmless.
Not urgent for this PR, but worth adding to avoid mechanical path updates every time the tree moves.

src/test/unit_tests/internal/test_bucket_chunks_builder.js (1)

10-11: Import paths adjusted – same alias suggestion applies

require('../../../server/…') resolves correctly, yet keeps the test coupled to folder depth.
If you adopt a project-root alias (e.g. via module-alias or Jest moduleNameMapper) the path becomes stable and easier to read.

src/test/unit_tests/api/test_ns_list_objects.js (1)

6-9: Path correction acknowledged

The updated paths compile and match the new structure. As with other files, switching to a project-wide alias would remove the need for these repetitive ../../../ edits.

src/test/unit_tests/nsfs/test_nsfs_access.js (1)

8-16: Multiple deep imports – candidate for shared helper

Eight separate ../../../ imports in one header make maintenance painful. A shared helper (similar to require_coretest()) exposing { fs_utils, nb_native, ... } from the project root keeps this readable and refactor-proof.

src/test/integration_tests/internal/test_tiering_ttl_worker.js (1)

5-18: Still using hard-coded ../../framework/coretest/coretest

Most newer tests switched to require_coretest() to decouple from directory depth. Consider aligning this file to the same helper:

-const { setup, rpc_client, POOL_LIST } = require('../../framework/coretest/coretest');
+const { setup, rpc_client, POOL_LIST } = require('../../system_tests/test_utils').require_coretest();

Keeps the import stable and consistently readable across the suite.

src/test/unit_tests/internal/test_chunk_config_utils.js (1)

8-9: Relative-import depth keeps growing – consider a stable alias

Moving to ../../../../config and ../../../server/utils/... works today, but every future relocation will break these strings again.
Define a root-level alias (e.g. via NODE_PATH, module-alias, or Jest/Mocha’s moduleNameMapper) so tests can simply do:

const config = require('@root/config');
const chunk_config_utils = require('@server/utils/chunk_config_utils');

This removes the brittle “dot-dot carnival” and makes large-scale moves (like this PR) easier.
Please verify the new paths resolve on CI across all OSes.

src/test/integration_tests/nc/tools/test_nc_health.js (1)

10-24: 16(!) dotted segments – import paths are becoming unmaintainable

The health test now reaches five .. segments for some modules. Readability aside, a single directory shuffle will 404 half of these requires.

Suggestion

  1. Introduce a shared alias strategy (see comment in test_chunk_config_utils.js).
  2. Alternatively, expose frequently-used helpers (config, fs_utils, test_utils, etc.) through a thin wrapper module under src/test/framework/helpers.

Either approach eliminates cascaded path edits in future restructures.

src/test/integration_tests/db/test_mdsequence.js (1)

4-11: Deep relative imports – same maintainability concern

'../../framework/coretest/coretest', '../../../../config', etc. repeat the fragile pattern discussed earlier. Please consider adopting a module alias (e.g. @coretest, @config) to future-proof these imports.

src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1)

10-15: Brittle path strings – favour aliases for shared utilities

The six updated imports all rely on very deep ../ traversals. Introducing a project-root alias (or exporting the SDK/utility bundle from a single barrel file) will prevent another mass-edit when the test tree moves again.

src/test/unit_tests/internal/test_namespace_cache.js (1)

9-15: Imports look correct, but consider future-proofing path gymnastics

The updated relative paths point to valid locations given the new directory layout – good catch.
However, these six-deep ../../../.. chains are brittle and will break on the next structural shuffle (exactly what happened now). A small shim that exposes project-root-relative requires (e.g. utilising module-alias or a simple helper that prepends process.cwd()) would make the tests immune to further moves.

No action is mandatory for this PR, just food for thought before the next re-org.

src/test/integration_tests/internal/test_encryption.js (1)

6-24: Relative-path imports are correct but brittle – consider introducing a path alias.

All the updated require() statements resolve properly after the directory move, so ✅ for correctness.
However, walking three-plus levels up (../../../) makes the code harder to maintain; one more restructuring will break every import again.

A small alias layer pays off quickly:

// bootstrap once in test bootstrap file (or use `module-alias`)
+require('module-alias/register');

package.json

{
  "_moduleAliases": {
    "@coretest":   "src/test/framework/coretest",
    "@server":     "src/server",
    "@util":       "src/util",
    "@config":     "config.js"
  }
}

and then in this file:

-const coretest = require('../../framework/coretest/coretest');
-const system_store = require('../../../server/system_services/system_store').get_instance();
-const auth_server = require('../../../server/common_services/auth_server');
-const SensitiveString = require('../../../util/sensitive_string');
-const db_client = require('../../../util/db_client').instance();
-const P = require('../../../util/promise');
-const config = require('../../../../config.js');
-const { KeyRotator } = require('../../../server/bg_services/key_rotator');
+const coretest       = require('@coretest/coretest');
+const system_store   = require('@server/system_services/system_store').get_instance();
+const auth_server    = require('@server/common_services/auth_server');
+const SensitiveString= require('@util/sensitive_string');
+const db_client      = require('@util/db_client').instance();
+const P              = require('@util/promise');
+const config         = require('@config');
+const { KeyRotator } = require('@server/bg_services/key_rotator');

This eliminates fragile climbs and clarifies intent.
Optional for this PR, but worth adding before the next re-org.

src/test/unit_tests/api/test_namespace_fs_mpu.js (1)

13-21: Same path-depth issue as above – suggest using module aliases

The updated require('../../../…') paths now point correctly after the move, but they repeat long climbs that will break again on the next relocation. Re-using the alias approach outlined in the previous comment would tidy this file as well and remove a lot of visual noise.

No functional blockers – tests should run – but consider centralising import roots.

src/test/integration_tests/api/s3/test_lifecycle.js (1)

18-27: Prefer module-alias over fragile deep relative paths

The updated require('../../../../...') chains work but are brittle—one extra directory move will break every import. Consider configuring a root-level alias (e.g. via module-alias, NODE_PATH, or TS/Jest path mapping) so that tests can simply do

const ObjectIO  = require('src/sdk/object_io');

This keeps the test code readable and decoupled from future refactors.

src/test/integration_tests/db/test_md_store.js (1)

5-5: Same maintenance concern with deep relative import

require('../../framework/coretest/coretest') is correct today but fragile. A project-wide alias (e.g. require('tests/coretest')) would avoid repeated path adjustments each time the test tree is reorganised.

src/test/integration_tests/db/test_nodes_store.js (1)

5-11: Minor nit – consider future-proofing deep relative imports

require('../../framework/coretest/coretest') and
require('../../../server/node_services/nodes_store') work today but will break
whenever the file moves. Using project-root aliases (e.g. via module-alias or tsconfig paths)
would decouple tests from folder depth.

src/test/integration_tests/api/s3/test_s3_bucket_policy.js (1)

10-22: Deep relative imports are getting brittle

The re-shuffle forces paths such as ../../../../../config that climb five levels.
A future move of this test file (or the target module) will silently break the require, and the pattern is repeated for md_store, fs_utils, and s3_errors.

Consider:

-const MDStore   = require('../../../../server/object_services/md_store').MDStore;
-const fs_utils  = require('../../../../util/fs_utils');
-const { S3Error } = require('../../../../endpoint/s3/s3_errors');
-const config    = require('../../../../../config');
+const { MDStore } = require('server/object_services/md_store');
+const fs_utils   = require('util/fs_utils');
+const { S3Error } = require('endpoint/s3/s3_errors');
+const config     = require('config');

Using a module-alias (e.g. module-alias, ts-config-paths) or Node’s NODE_PATH keeps the require lines short, relocatable, and IDE-friendly.

src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1)

12-14: Deep relative imports are brittle – consider introducing a root alias

Three require statements now climb four directories (../../../../…).
Any future movement of this test file (or the referenced utils) will break these paths and force another sweeping path-update PR. A small Jest/Node alias such as @src/* (via module-alias, NODE_PATH, or Jest moduleNameMapper) would decouple test locations from code structure and improve maintainability.

Example:

// with module-alias (package.json "_moduleAliases")
const os_util  = require('@src/util/os_utils');
const fs_utils = require('@src/util/fs_utils');
const { ConfigFS } = require('@src/sdk/config_fs');
src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1)

8-14: Reduce dependency-fragile deep relative paths

Five-level traversals (../../../../../ etc.) are extremely brittle – a single directory move breaks every import.
Consider adopting a central alias (e.g. using module-alias or the NODE_PATH trick) so that all tests can simply do:

const config       = require('@root/config');
const { folder_delete } = require('@src/util/fs_utils');

This keeps the refactor’s spirit of “clearer structure” while future-proofing the codebase.

src/test/integration_tests/internal/test_tiering_upload.js (1)

15-20: Minor: keep import extension usage consistent

Some updated imports add “.js” (config.js) while others omit it.
Node resolves either way but consistency aids grepping and future ESM migration.

src/test/integration_tests/api/sts/test_sts.js (1)

5-18: Prefer the shared require_coretest() helper for consistency

Most test files now pull coretest via the helper exposed by src/test/system_tests/test_utils.js:

const { require_coretest } = require('../../../system_tests/test_utils');
const coretest = require_coretest();

Sticking to the helper avoids hard-coding a relative path that may shift again and keeps all suites uniform.

src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1)

12-18: Deep relative paths – consider a module-alias or NODE_PATH to reduce fragility

The new ../../../../… style paths work, but as the project structure grows they become brittle and noisy.
Introducing a root-level alias (e.g. via module-alias, tsconfig paths, or NODE_PATH) would let you replace

const os_util = require('../../../../util/os_utils');

with something like

const os_util = require('@util/os_utils');

improving readability and avoiding future churn when directories move.
(No functional change required for this PR.)

src/test/integration_tests/internal/test_node_allocator.js (1)

5-5: Adopt the shared require_coretest() utility

Same rationale as above – it reduces relative-path churn and matches the new convention introduced by this PR.

-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest = require_coretest();
src/test/integration_tests/api/s3/test_s3_list_objects.js (1)

6-6: Unify Core-Test loading strategy

This is one of the few remaining files still importing Core-Test via path math.
Recommend the same small change:

-const coretest = require('../../../framework/coretest/coretest');
+const { require_coretest } = require('../../../../system_tests/test_utils');
+const coretest = require_coretest();
src/test/integration_tests/internal/test_map_client.js (1)

4-8: Use the common Core-Test loader

As with the other integration tests, moving to the helper keeps imports short and future-proof:

-/** @typedef {typeof import('../../../sdk/nb')} nb */
-
-// setup coretest first to prepare the env
-const coretest = require('../../framework/coretest/coretest');
+/** @typedef {typeof import('../../../sdk/nb')} nb */
+
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest = require_coretest();
src/test/integration_tests/api/s3/test_nsfs_integration.js (1)

39-39: Sanity-check: require_coretest() may throw early

Switching from a hard-coded path to require_coretest() improves portability, but if require_coretest cannot locate the framework (e.g. mis-set env var after the directory move), the exception surfaces only when tests start.

Consider wrapping with a small guard to emit a clearer message:

let coretest;
try {
    coretest = require_coretest();
} catch (e) {
    console.error('Failed to resolve coretest after test-suite relocation:', e);
    throw e;
}
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in this context as indicated by the static analysis tool.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1)

11-14: Deep relative paths are becoming brittle

After the directory reshuffle the imports now climb four levels (../../../../).
Any further movement of this file or the util folder will silently break these paths.
Consider introducing a root-alias (e.g. via NODE_PATH, module-alias, or TS path mapping) so tests can import like:

const P          = require('@src/util/promise');
const fs_utils   = require('@src/util/fs_utils');

This keeps test files agnostic to directory depth changes.

src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

As noted by static analysis, the 'use strict' directive is redundant in ES modules since they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/system_tests/run_system_tests_on_tests_container.sh (2)

46-46: Consider making the sleep duration configurable.

The hardcoded 40-second sleep may be brittle across different environments or system loads.

Consider making it configurable:

-sleep 40
+DEPLOY_WAIT_TIME=${DEPLOY_WAIT_TIME:-40}
+sleep ${DEPLOY_WAIT_TIME}

53-53: Clean up commented code.

The commented test should be either implemented or removed to maintain code cleanliness.

src/test/framework/index/index.js (1)

2-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making this directive unnecessary.

-'use strict';
src/test/system_tests/test_bucket_access.js (1)

160-179: Clean up temporary debug logging.

The debug strings with "NMNMNM" and console.log statements appear to be temporary debugging code that should be cleaned up before merging.

Consider removing or replacing with more descriptive logging:

-    dbg.log0("NMNMNMN authenticate");
+    dbg.log0("Starting authentication");
-    console.log("NMNNMNMNMNMNMNMNM0");
+    dbg.log0("Generating test file");
-    console.log("NMNM", accounts, email);
+    dbg.log0("Looking up account:", email);

Also applies to: 187-217, 409-409

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 95034f6 and cb65eba.

📒 Files selected for processing (101)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_integration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_aws.conf (1 hunks)
  • src/test/system_tests/ceph_s3_tests/tox.ini (1 hunks)
  • src/test/system_tests/run_system_tests_on_tests_container.sh (1 hunks)
  • src/test/system_tests/test_bucket_access.js (8 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/api/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/api/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/api/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/internal/test_s3select.js (1 hunks)
  • src/test/unit_tests/internal/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/sudo_index.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/internal/test_s3select.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/api/test_nc_lifecycle.test.js
  • src/test/unit_tests/internal/test_schema_keywords.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/unit_tests/api/test_namespace_fs.js
  • src/test/unit_tests/api/test_ns_list_objects.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/framework/index/sudo_index.js
  • src/test/system_tests/ceph_s3_tests/tox.ini
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js
  • src/test/unit_tests/api/test_namespace_fs_mpu.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/api/s3/test_nsfs_integration.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/nc/test_nc_master_keys.test.js
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/internal/test_public_access_block.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/framework/index/index.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/unit_tests/api/test_nsfs_versioning.js
  • src/test/system_tests/run_system_tests_on_tests_container.sh
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/framework/coretest/coretest.js
  • src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_aws.conf
  • src/test/unit_tests/api/test_bucketspace_fs.js
  • src/test/system_tests/test_utils.js
  • src/test/framework/index/nc_index.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js
  • src/test/system_tests/test_bucket_access.js
  • src/test/framework/coretest/nc_coretest.js
🧠 Learnings (20)
.github/workflows/nightly-tests.yaml (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/internal/test_dedup.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/s3/test_s3_worm.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/s3/test_namespace_auth.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/s3/test_s3_ops.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/s3/test_s3_bucket_policy.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/unit_tests/api/test_namespace_fs.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/sts/test_sts.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/api/s3/test_nsfs_integration.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/deploy/NVA_build/Tests.Dockerfile (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
src/test/integration_tests/api/s3/test_s3_list_buckets.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/internal/test_public_access_block.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/internal/test_upgrade_scripts.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/internal/test_encryption.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/framework/coretest/coretest.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/unit_tests/api/test_bucketspace_fs.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/integration_tests/internal/test_map_builder.js (2)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
src/test/system_tests/test_bucket_access.js (1)
Learnt from: naveenpaul1
PR: noobaa/noobaa-core#9042
File: src/util/cloud_utils.js:183-194
Timestamp: 2025-06-17T12:59:51.543Z
Learning: In the set_noobaa_s3_connection function in src/util/cloud_utils.js, internal NooBaa S3 endpoints (filtered by 'api': 's3', 'kind': 'INTERNAL') will always be non-secure, so tls: false is the correct setting despite the conditional https:// scheme logic.
Makefile (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 Biome (1.9.4)
src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: ceph-s3-tests / Ceph S3 Tests
🔇 Additional comments (68)
src/test/unit_tests/db/test_migration_to_postgres.js (1)

7-7: Relative-path fix looks correct — double-check remaining callers.

The extra ../ now correctly resolves from src/test/unit_tests/db/src/util/.
Run a quick grep to ensure no other test in src/test/** still uses the outdated ../../util/mongo_client path.

src/test/system_tests/test_md_aggregator.js (1)

7-7: Import path aligns with new test layout — verify http_utils availability in system-test image.

The shallower path (../../util/http_utils) assumes the system-test container has src as the working directory.
If the Dockerfile still sets WORKDIR /src/test/framework, this will fail at runtime. Validate by running the system-test target locally/CI after the directory shuffle.

src/test/unit_tests/native/test_nb_native_hashes.js (1)

7-7: Path update LGTM.

No functional impact; tests should still resolve nb_native.

src/test/unit_tests/native/test_nb_native_b64.js (1)

7-7: Path update LGTM.

Matches the new directory depth.

src/test/unit_tests/internal/test_keys_semaphore.js (1)

7-8: Corrected imports — ensure shared util path consistency.

Both promise and keys_semaphore are now resolved from src/util/, consistent with the restructure.
Run the unit-test suite to confirm there aren’t lingering duplicate copies of these modules inside src/test.

src/test/integration_tests/db/test_postgres_upgrade.js (1)

7-12: Import Paths Are Correct

Verified that both src/upgrade/migrator.js and src/util/postgres_client.js exist exactly once in the codebase. The ../../../upgrade/migrator and ../../../util/postgres_client require paths in src/test/integration_tests/db/test_postgres_upgrade.js will resolve successfully—no changes needed.

src/test/unit_tests/native/test_nb_native_gpfs.js (1)

7-10: Validate fs_utils import to avoid duplicate instances
The test at src/test/unit_tests/native/test_nb_native_gpfs.js uses

const fs_utils = require('../../../util/fs_utils');

However, running fd -t f fs_utils.js shows three fs_utils.js files in the repo, so it’s not guaranteed you’re pulling in the canonical singleton (e.g. src/util/fs_utils.js). An incorrect resolution here can lead to multiple module instances and break native state.

• Confirm that ../../../util/fs_utils from this test file points to the intended fs_utils.js.
• The other imports (nb_native, native_fs_utils) each have exactly one match and look safe.

src/test/unit_tests/db/test_postgres_client.js (1)

7-13: Import paths verified – utilities exist at expected depth

I confirmed that the three modules live in src/util/{postgres_client.js, sensitive_string.js, promise.js} and that the ../../../util/... imports in src/test/unit_tests/db/test_postgres_client.js correctly resolve to them. No missing consumers were detected.

src/test/unit_tests/internal/test_chunk_splitter.js (1)

9-11: Check that utility paths still resolve after move

Just like the other test files, these utilities shifted one level deeper. Make sure the CI run includes this suite so we catch any path mismatch early.

src/test/integration_tests/internal/test_dedup.js (1)

9-13: LGTM on updated relative paths

The updated deep-relative paths (../../../util/http_utils, ../../../server/object_services/md_store, ../../../../config) correctly resolve from the new file location. No functional issues spotted.

src/test/unit_tests/internal/test_s3select.js (1)

6-10: Import path adjustments look correct

All three imports now walk three levels up, matching src/test/unit_tests/internal/**src/util/**. Runtime resolution should succeed; no further action required.

src/test/unit_tests/api/test_nc_lifecycle.test.js (1)

14-15: Path realignment verified

../../../util/lifecycle_utils resolves three levels up from unit_tests/api, which is correct after the directory reshuffle. No further comments.

src/test/unit_tests/nc/test_nc_master_keys.test.js (1)

14-14: Import path update looks correct

New relative path resolves to src/test/system_tests/test_utils.js; no issues found.

src/test/integration_tests/api/s3/test_s3_encryption.js (1)

22-22: Relative path to config still works but is inconsistent

Other updated tests import the root config with require('../../../../config') (4 dots) from a similar nesting depth. Here we need five dots; double-check soon-to-be-moved files to avoid off-by-one mistakes. Nothing to fix right now, just flagging for consistency.

src/test/integration_tests/internal/test_upgrade_scripts.js (1)

11-14: Possible over-traversal in relative paths

These four imports walk up three levels (../../../) from src/test/integration_tests/internal.
Given the file is at depth src/test/integration_tests/internal, three dots land at src/, so everything after that must live under src/…. Verify that server/system_services/..., upgrade/..., etc. indeed reside under src/. If they are one level higher (repo root), the tests will crash at runtime.

Request a quick sanity check before merging.

src/test/system_tests/ceph_s3_tests/tox.ini (1)

5-9: Verify requirements.txt resolution

deps = -rrequirements.txt assumes requirements.txt sits in the same folder as this tox.ini.
If the file actually lives one level up (common in mono-repos), the install step will silently skip deps and tests will misbehave. Please confirm the location or change to -r../requirements.txt.

src/test/integration_tests/db/test_md_store.js (1)

11-14: Double-check new paths

Both require('../../../../config') and require('../../../server/object_services/md_store') jumped one directory. CI will only catch missing files at runtime; please run the suite locally or via the pipeline to ensure they still resolve.

src/test/unit_tests/api/test_namespace_fs.js (1)

14-28: Verify all new relative-import hops resolve at runtime

The test file moved deeper; most require('../../../…') statements now climb three levels.
Please run the suite (or at minimum node -e "require('./src/test/unit_tests/api/test_namespace_fs')")
to confirm that every path indeed lands on an existing module – a single typo will only surface at
execution time.

src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1)

8-18: Path realignment looks OK – double-check against renamed folders

The CLI test now ascends four-to-five directories for most helpers (../../../../…, ../../../../../config).
Given the sweeping restructure, please re-run the NC CLI integration tests to ensure Node can still
resolve:
util/os_utils
util/fs_utils
sdk/config_fs
manage_nsfs/*
• root-level config

src/test/integration_tests/api/s3/test_s3_bucket_policy.js (1)

7-8: Avoid mixing two sources of truth for core-test context

is_nc_coretest is imported from test_utils, yet most of the file still branches on process.env.NC_CORETEST.
Keeping two flags that try to describe the same runtime mode invites subtle mismatches (string vs. boolean, typo, forgotten export, etc.).

  • Trust the single exported boolean and drop direct process.env checks (or vice-versa).
  • You’ll be able to grep / refactor the code later without chasing both forms.

[ suggest_optional_refactor ]

src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1)

16-19: Verification Passed: Unique test_utils.js Location Confirmed

I ran the provided check and confirmed there is exactly one src/test/system_tests/test_utils.js in the repo, so the import path is correct. No further action required.

src/test/unit_tests/api/test_bucketspace_fs.js (1)

11-27: Import path updates look correct 👍

All updated require() paths resolve cleanly from src/test/unit_tests/api/, and they mirror the new directory layout introduced by the PR.
No further action needed.

src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1)

7-13: Nice adoption of the new test-utils helper

Switching to require_coretest() and the consolidated util barrel keeps this file portable across directory moves. Looks good.

src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1)

5-12: Imports align with relocated modules

Depth adjustments (../../../../) correctly resolve to the SDK and util packages given the new folder structure. No issues spotted.

package.json (1)

27-27: Verify CI & local scripts reference the new Mocha entry point

mocha now targets src/test/framework/index/index.js. Make sure every CI job, Dockerfile, and Makefile path was updated in tandem; otherwise some pipelines might still invoke the removed unit_tests entry.

src/test/integration_tests/api/s3/test_bucket_replication.js (3)

7-8: Import-path adjustments look fine

Relative traversals resolve correctly to src/* after the directory reshuffle; no other issues spotted.

Also applies to: 14-16, 18-18


167-167: Import-path update verified

replication_store is now referenced via the new relative depth – path resolves to src/server/system_services/replication_store.js. 👍


387-387: No functional changes were introduced in these assertions / housekeeping statements.

Also applies to: 400-400, 410-410, 690-691

src/test/integration_tests/internal/test_map_deleter.js (1)

5-5: Only path corrections—logic untouched.

Also applies to: 17-17

src/test/unit_tests/api/test_nsfs_versioning.js (1)

11-15: Only depth-prefix tweaks to match new layout – good to go.

src/test/framework/coretest/coretest.js (1)

21-24: Path realignments only; everything still resolves under src/.

Also applies to: 33-57, 41-57

src/test/unit_tests/internal/test_mapper.js (1)

6-6: Updated import depths align with the new directory structure.

Also applies to: 15-16

src/test/integration_tests/db/test_md_aggregator_unit.js (1)

6-6: LGTM: Import paths correctly updated for framework reorganization.

The import paths have been properly adjusted to reflect the new test directory structure, moving coretest to framework/coretest and adjusting other utility imports for the deeper nesting.

Also applies to: 15-18

src/test/integration_tests/internal/test_map_builder.js (1)

4-4: LGTM: Import paths consistently updated for new directory structure.

All import paths have been systematically updated to reflect the reorganized test framework, with proper adjustment of relative path depths while maintaining access to the same modules.

Also applies to: 7-7, 15-27

src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (1)

9-17: LGTM: Import paths properly updated for test reorganization.

The import paths for utility modules and type definitions have been correctly adjusted to accommodate the new test directory structure.

Also applies to: 1064-1064

src/test/integration_tests/internal/test_agent_blocks_verifier.js (2)

4-4: LGTM: Import paths updated for framework reorganization.

The import paths have been correctly adjusted to reflect the new test directory structure, maintaining access to the same modules through updated relative paths.

Also applies to: 7-7, 13-18


75-75: LGTM: Defensive programming improvement addresses potential null reference.

The addition of optional chaining (blocks?.map) prevents potential runtime errors if the blocks array is undefined or null. This aligns with the PR objective of fixing DeepScan-identified issues.

src/test/integration_tests/internal/test_object_io.js (1)

16-18: LGTM on the adjusted SDK / util paths

Paths now correctly resolve three directories up.
No additional concerns.

src/test/integration_tests/api/s3/test_s3_list_objects.js (1)

13-15: Path fixes look correct

The new locations for promise and object_io are consistent with the repo move.
No further action required.

src/test/framework/coretest/nc_coretest.js (1)

10-15: Validate all deep relative requires

Many paths were rebased by one level (e.g., ../../../util/sensitive_string).
Please double-check that every target file still exists from this location – CI will catch it, but a quick node -e "require.resolve('PATH')" locally saves a red build.

Also applies to: 25-29, 36-43

src/test/integration_tests/internal/test_map_client.js (1)

14-18: Approved path realignments

All SDK / server utilities now resolve three levels up; looks consistent with the directory restructure.

src/test/integration_tests/internal/test_system_servers.js (2)

6-6: The coretest import path is valid

Verified that src/test/framework/coretest/coretest.js exists, so the require call

const coretest = require('../../framework/coretest/coretest');

resolves correctly. No changes needed.


14-18: All updated relative imports are valid

Ran verification against the filesystem and confirmed that all three target modules exist at their resolved paths—no import errors will occur at runtime.

src/test/unit_tests/internal/test_mirror_writer.js (1)

12-17: Module paths confirmed

All import paths in src/test/unit_tests/internal/test_mirror_writer.js are correct; the following files exist at their specified locations:

  • src/server/bg_services/mirror_writer.js
  • config.js
  • src/util/debug_module.js

No changes required.

src/test/integration_tests/api/s3/test_nsfs_integration.js (2)

16-16: Likely wrong relative path to config

Given the file location src/test/integration_tests/api/s3/test_nsfs_integration.js, reaching src/config.js requires four .. segments, not five.
../../../../../config climbs to project-root and looks for config.js there – which does not exist in the NooBaa tree and will resolve to the config NPM package instead.

-const config = require('../../../../../config');
+const config = require('../../../../config');

Verify the correct path and adjust; otherwise every config reference will point to the wrong module.


28-31: Fatal error – duplicate bindings in destructuring import

generate_s3_policy, create_fs_user_by_platform, delete_fs_user_by_platform, and get_new_buckets_path_by_test_env appear twice in the same destructuring pattern.
Node will throw SyntaxError: Duplicate binding name on the very first require, breaking the entire suite.

-const { TMP_PATH, IS_GPFS, is_nc_coretest, require_coretest, invalid_nsfs_root_permissions,
-    generate_s3_policy, create_fs_user_by_platform, delete_fs_user_by_platform, get_new_buckets_path_by_test_env,
-    generate_s3_policy, create_fs_user_by_platform, delete_fs_user_by_platform, get_new_buckets_path_by_test_env,
-    generate_s3_client, exec_manage_cli, generate_anon_s3_client, generate_nsfs_account } = require('../../../system_tests/test_utils');
+const {
+    TMP_PATH,
+    IS_GPFS,
+    is_nc_coretest,
+    require_coretest,
+    invalid_nsfs_root_permissions,
+    generate_s3_policy,
+    create_fs_user_by_platform,
+    delete_fs_user_by_platform,
+    get_new_buckets_path_by_test_env,
+    generate_s3_client,
+    exec_manage_cli,
+    generate_anon_s3_client,
+    generate_nsfs_account,
+} = require('../../../system_tests/test_utils');

Please fix before merging – none of the tests will execute otherwise.

Likely an incorrect or invalid review comment.

src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1)

8-19: LGTM! Import paths correctly updated for new directory structure.

The import paths have been consistently updated to reflect the new test directory organization, and the switch from get_coretest_path() to require_coretest() is a good improvement that simplifies the coretest module loading.

src/test/framework/index/sudo_index.js (1)

5-25: LGTM! Well-structured test orchestrator for sudo-level tests.

The file properly:

  • Sets up the coretest framework
  • Validates root permissions before running tests
  • Organizes tests that require elevated privileges
  • Uses correct import paths for the new directory structure
src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (1)

5-21: LGTM! Import paths correctly updated for new framework structure.

All import paths have been consistently updated to reflect the new directory organization, with the coretest import properly pointing to the framework/coretest location and all other imports adjusted accordingly.

src/test/system_tests/test_utils.js (2)

251-256: LGTM! Excellent improvement to simplify coretest module loading.

The function rename and implementation change from get_coretest_path() to require_coretest() is a great improvement. Directly returning the required module instead of just the path simplifies the usage pattern and reduces boilerplate code for consumers.


922-922: LGTM! Export correctly updated to match function rename.

The export statement properly reflects the function name change from get_coretest_path to require_coretest.

src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1)

16-17: require_coretest signature changed – double-check all callers

The helper list now exposes require_coretest instead of get_coretest_path.
Make sure every other test file in the repo was updated accordingly; otherwise they’ll throw at runtime.

src/test/integration_tests/internal/test_public_access_block.js (1)

11-14: LGTM: Import paths correctly updated for directory restructuring.

The import path updates are consistent with the test directory reorganization, properly reflecting the new hierarchy and switching to the standardized require_coretest() pattern.

src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_aws.conf (1)

1-60: LGTM: Well-structured configuration file for Ceph S3 system tests.

The configuration file is properly organized with clear sections for connection parameters, fixtures, and multiple test user accounts. This supports comprehensive S3 testing scenarios including ACL-related tests.

src/test/integration_tests/api/s3/test_notifications.js (3)

10-10: LGTM: Config import path correctly updated.

The path adjustment to ../../../../../config properly reflects the new directory depth.


13-14: LGTM: Core test import standardized.

The switch to require_coretest() function follows the new standardized pattern for loading the core test framework.


31-31: LGTM: Utility import path correctly adjusted.

The notifications_util path update properly reflects the new directory structure.

src/test/integration_tests/api/test_nc_iam_basic_integration.js (4)

10-10: LGTM: Utility import path correctly updated.

The fs_utils path adjustment to ../../../util/fs_utils properly reflects the new directory depth.


12-12: LGTM: Test utilities import standardized.

The import of require_coretest from the standardized location follows the new pattern.


26-27: LGTM: IAM module imports correctly adjusted.

Both IAM constants and errors import paths are properly updated to reflect the deeper directory structure.


30-30: LGTM: Core test framework loading standardized.

The direct call to require_coretest() follows the new standardized pattern for loading the core test framework.

src/test/framework/index/nc_index.js (1)

5-35: LGTM: Well-organized test index for NC environment.

The test index properly sets up the nc_coretest environment and imports a comprehensive suite of tests covering namespace filesystem, CLI tools, health checks, IAM integration, and multi-fork scenarios. The TODO comments appropriately mark tests for future enabling.

src/test/system_tests/run_system_tests_on_tests_container.sh (1)

1-56: LGTM! Well-structured system test automation script.

The script follows good practices with set -e for error handling and comprehensive environment variable configuration. The hardcoded credentials are acceptable for test environments.

src/test/framework/index/index.js (1)

5-110: Excellent test organization and comprehensive coverage.

The centralized test index with clear categorization (utils, stores, core, servers) and logical grouping of tests that require/don't require host pools is well-structured and maintainable.

Makefile (2)

283-283: LGTM! Consistent framework path updates.

All test targets have been properly updated to use the new framework directory structure, maintaining consistency across the build system.

Also applies to: 293-293, 304-304


271-271: New framework paths verified — files present

All referenced test scripts exist in the new framework structure:

  • src/test/framework/index/sudo_index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/run_npm_test_on_test_container.sh

The path updates are consistent with the reorganization.

src/test/system_tests/test_bucket_access.js (2)

91-106: Excellent improvement with dynamic pool selection.

Replacing hardcoded pool names with dynamic selection from the system's host pools makes the test more robust and environment-agnostic.


408-411: LGTM! Improved account lookup function.

The updated account_by_name function with direct email string comparison and logging is more robust and debuggable.

Comment on lines 5 to 6
const coretest = require('../../../framework/coretest/coretest');
coretest.setup({ pools_to_create: [coretest.POOL_LIST[1]] });
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Switch to the new require_coretest() helper

Most tests that moved to framework/ no longer hard-code deep paths – they call the shared helper exported from system_tests/test_utils.js:

const { require_coretest } = require('../../../../system_tests/test_utils');
const coretest = require_coretest();

Using the helper keeps this file in sync if the framework is relocated again and removes one more hard-coded ../../../...
Consider replacing the direct require('../../../framework/coretest/coretest') with the snippet above.

🤖 Prompt for AI Agents
In src/test/integration_tests/api/s3/test_s3_encryption.js at lines 5 to 6,
replace the direct require of '../../../framework/coretest/coretest' with the
new require_coretest() helper from '../../../../system_tests/test_utils'. First,
import require_coretest from the test_utils module, then call it to get the
coretest object. This removes the hard-coded deep path and keeps the import
resilient to framework relocations.

Comment on lines 5 to 6
const coretest = require('../../framework/coretest/coretest');
const { rpc_client, EMAIL } = coretest;
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Align with helper-based coretest import

Same remark as in test_s3_encryption.js: prefer the central helper to avoid brittle paths.

-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../../system_tests/test_utils');
+const coretest = require_coretest();
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const coretest = require('../../framework/coretest/coretest');
const { rpc_client, EMAIL } = coretest;
const { require_coretest } = require('../../../system_tests/test_utils');
const coretest = require_coretest();
const { rpc_client, EMAIL } = coretest;
🤖 Prompt for AI Agents
In src/test/integration_tests/internal/test_upgrade_scripts.js at lines 5 to 6,
the import of coretest uses a relative path that can be brittle. Replace this
with the central helper-based import used in other tests like
test_s3_encryption.js to ensure consistency and reduce path fragility. Update
the require statement to import coretest from the central helper module instead
of the relative path.


const tmp_fs_path = path.join(TMP_PATH, 'test_nc_account_cli');
const timeout = 50000;
const config = require('../../../../config');
const config = require('../../../../../config');
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Multiple config singleton instances risk diverging state

Using a fifth-level relative path (../../../../../config) means other test files at different depths will require the same module with different resolved absolute paths (e.g. ../../../config, ../../config, …).
Node treats those as distinct modules, so mutations (e.g. config.NC_DISABLE_ACCESS_CHECK = true) won’t propagate, leading to hard-to-trace bugs.

Refactor to a single canonical import path – e.g. register @root/config alias or:

const projectRoot = path.resolve(__dirname, '../../../../..');
const config = require(path.join(projectRoot, 'config'));

Ensuring every file computes the same absolute path avoids accidental duplication.

🤖 Prompt for AI Agents
In src/test/integration_tests/nc/cli/test_nc_account_cli.test.js at line 23, the
config module is imported using a deep relative path which can cause multiple
singleton instances due to different resolved absolute paths. To fix this,
replace the relative require with a computed absolute path by resolving the
project root directory (e.g., using path.resolve with __dirname) and then
requiring the config module from that absolute path. This ensures all files
import the same canonical config instance and avoid state divergence.

Comment on lines 5 to 6
const coretest = require('../../framework/coretest/coretest');
coretest.setup({ pools_to_create: coretest.POOL_LIST });
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Inconsistent coretest bootstrap – switch to the new helper

Most updated tests rely on require_coretest() exposed by test_utils.
Keeping a hard-coded relative path here breaks the single-source-of-truth goal and will fail once coretest is relocated again.

-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest = require_coretest();

This mirrors the pattern already used in test_nc_online_upgrade_s3_integrations.js.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const coretest = require('../../framework/coretest/coretest');
coretest.setup({ pools_to_create: coretest.POOL_LIST });
// Before:
// const coretest = require('../../framework/coretest/coretest');
// coretest.setup({ pools_to_create: coretest.POOL_LIST });
// After:
const { require_coretest } = require('../../system_tests/test_utils');
const coretest = require_coretest();
coretest.setup({ pools_to_create: coretest.POOL_LIST });
🤖 Prompt for AI Agents
In src/test/integration_tests/internal/test_tiering_upload.js at lines 5-6,
replace the direct require of coretest with the use of require_coretest() from
test_utils to maintain a single source of truth and avoid hard-coded relative
paths. Import require_coretest from test_utils and use it to get coretest, then
call setup on it as before.

Comment on lines 100 to 108
require('../../../server/notifications/alerts_log_store').instance();
require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
require('../../../server/analytic_services/io_stats_store').IoStatsStore.instance();
require('../../../server/analytic_services/bucket_stats_store').BucketStatsStore.instance();
require('../../../server/analytic_services/history_data_store').HistoryDataStore.instance();
require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
// eslint-disable-next-line no-unused-expressions
require('../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance;
require('../../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance;
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Duplicate require + missing invocation

  1. ActivityLogStore.instance() is required twice (lines 101 and 105).
  2. EndpointStatsStore.instance (line 107) omits (), unlike the other stores, so the singleton is never initialized.
-    require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
...
-    require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
-    // eslint-disable-next-line no-unused-expressions
-    require('../../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance;
+    require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
...
+    // eslint-disable-next-line no-unused-expressions
+    require('../../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance();
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
require('../../../server/notifications/alerts_log_store').instance();
require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
require('../../../server/analytic_services/io_stats_store').IoStatsStore.instance();
require('../../../server/analytic_services/bucket_stats_store').BucketStatsStore.instance();
require('../../../server/analytic_services/history_data_store').HistoryDataStore.instance();
require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
// eslint-disable-next-line no-unused-expressions
require('../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance;
require('../../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance;
}
require('../../../server/notifications/alerts_log_store').instance();
require('../../../server/analytic_services/activity_log_store').ActivityLogStore.instance();
require('../../../server/analytic_services/io_stats_store').IoStatsStore.instance();
require('../../../server/analytic_services/bucket_stats_store').BucketStatsStore.instance();
require('../../../server/analytic_services/history_data_store').HistoryDataStore.instance();
// eslint-disable-next-line no-unused-expressions
require('../../../server/analytic_services/endpoint_stats_store').EndpointStatsStore.instance();
}
🤖 Prompt for AI Agents
In src/test/framework/coretest/coretest.js between lines 100 and 108, remove the
duplicate require call to ActivityLogStore.instance() on line 105 to avoid
redundant initialization. Also, add parentheses to EndpointStatsStore.instance
on line 107 to invoke the method and properly initialize the singleton, matching
the pattern used for other stores.

@@ -3,7 +3,7 @@
'use strict';

// setup coretest first to prepare the env
const coretest = require('./coretest');
const coretest = require('../../framework/coretest/coretest');
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Prefer require_coretest() over deep relative path

The project already exposes a helper in src/test/system_tests/test_utils.js:

const { require_coretest } = require('../../system_tests/test_utils');
const coretest = require_coretest();

Switching to it will:

  • eliminate the fragile ../../framework/... traversal
  • keep this file aligned with the rest of the suite that was migrated in this PR
-const coretest = require('../../framework/coretest/coretest');
+const { require_coretest } = require('../../system_tests/test_utils');
+const coretest = require_coretest();
🤖 Prompt for AI Agents
In src/test/integration_tests/internal/test_object_io.js at line 6, replace the
direct require of coretest using a deep relative path with the helper function
require_coretest from src/test/system_tests/test_utils.js. Import
require_coretest from '../../system_tests/test_utils' and then call it to get
coretest. This change removes fragile relative path traversal and aligns this
file with the rest of the test suite.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cb65eba and 9151ba3.

📒 Files selected for processing (100)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_integration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_aws.conf (1 hunks)
  • src/test/system_tests/ceph_s3_tests/tox.ini (1 hunks)
  • src/test/system_tests/run_system_tests_on_tests_container.sh (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/api/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/api/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/api/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/internal/test_s3select.js (1 hunks)
  • src/test/unit_tests/internal/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (21)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_aws.conf
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/internal/test_map_client.js
  • package.json
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/unit_tests/api/test_nsfs_versioning.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js
  • Makefile
🚧 Files skipped from review as they are similar to previous changes (73)
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/system_tests/ceph_s3_tests/tox.ini
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/api/test_namespace_fs_mpu.js
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_s3select.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/framework/coretest/coretest.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/api/test_ns_list_objects.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_public_access_block.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/api/test_bucketspace_fs.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/api/s3/test_nsfs_integration.js
  • src/test/system_tests/run_system_tests_on_tests_container.sh
  • src/test/unit_tests/nc/test_nc_master_keys.test.js
  • src/test/unit_tests/internal/test_schema_keywords.js
  • src/test/unit_tests/api/test_namespace_fs.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (9)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM! Good permission validation for sudo tests.

The runtime check for NSFS root permissions is appropriate and provides clear error messaging when insufficient permissions are detected.


18-24: Well-organized test suite for NSFS functionality.

The test organization is logical, grouping NSFS-related tests that don't require host pools. The imports correctly reference the new directory structure.

src/test/framework/index/nc_index.js (3)

8-25: Comprehensive test coverage for NC functionality.

The test organization covers a wide range of NC-related functionality including namespace filesystem, multi-part uploads, native filesystem, CLI tools, health checks, and various S3 integrations. The import paths are correctly updated for the new directory structure.


26-29: Clear documentation for tests with special setups.

The comments appropriately highlight that these tests use different setups (IAM port, multiple forks), which is important for understanding test execution context.


31-35: Good planning with TODO comments.

The commented-out test imports with TODO notes indicate planned future additions, which is helpful for tracking incomplete test coverage.

src/test/framework/index/index.js (4)

8-11: Excellent test organization with clear separation.

The clear separation between tests that do and don't require host pools is well-documented and will help with test execution planning and debugging.


12-37: Comprehensive utility test coverage.

The test suite includes excellent coverage of utility modules including data structures (linked list, LRU), concurrency primitives (semaphore, keys lock), networking (HTTP, SSL, RPC), and file system utilities. The organization by functionality makes it easy to locate specific test areas.


38-74: Well-structured core functionality tests.

The test organization logically progresses from data stores through core internal components to server functionality. The comments provide helpful context about test dependencies and initialization requirements.


75-110: Thorough integration test coverage.

The tests requiring host pools cover critical integration scenarios including S3 operations, encryption, bucket policies, replication, lifecycle management, and upgrade scripts. This comprehensive coverage ensures system reliability.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

Modern JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

Modern JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

Modern JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9151ba3 and 62dad34.

📒 Files selected for processing (97)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_integration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/api/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/api/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/api/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/internal/test_s3select.js (1 hunks)
  • src/test/unit_tests/internal/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (14)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/api/test_nsfs_versioning.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js
  • src/test/system_tests/test_md_aggregator.js
🚧 Files skipped from review as they are similar to previous changes (77)
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/api/test_nc_lifecycle.test.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/internal/test_s3select.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/internal/test_schema_keywords.js
  • src/test/unit_tests/api/test_namespace_fs_mpu.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/api/test_namespace_fs.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • package.json
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/internal/test_object_io.js
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/unit_tests/nc/test_nc_master_keys.test.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/api/s3/test_nsfs_integration.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/unit_tests/api/test_bucketspace_fs.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/internal/test_public_access_block.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/framework/coretest/coretest.js
  • src/test/system_tests/test_utils.js
  • src/test/unit_tests/api/test_ns_list_objects.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • Makefile
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (7)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM: Permission validation logic is appropriate.

The runtime check for NSFS root permissions is well-implemented, providing clear error messaging with process IDs for debugging.


17-25: LGTM: Test module organization is appropriate for sudo context.

The selected test modules are relevant for sudo-level operations, focusing on NSFS access, S3 integration, and system-level functionality.

src/test/framework/index/nc_index.js (2)

26-30: LGTM: Clear documentation for special test setups.

The comments appropriately document tests that use different setups or configurations, which is helpful for maintenance and understanding test dependencies.


31-35: LGTM: Appropriate TODO comments for disabled tests.

The TODO comments clearly indicate which tests are temporarily disabled and why, facilitating future enabling when support is ready.

src/test/framework/index/index.js (3)

8-11: LGTM: Clear categorization of test requirements.

The comment clearly separates tests that don't require host pools from those that do, which is essential for test execution planning and resource management.


67-75: LGTM: Excellent test organization with clear dependency documentation.

The comments clearly document the test initialization requirements and dependency on host pools, which is crucial for understanding test execution order and resource requirements.


12-110: LGTM: Comprehensive test suite coverage.

The test suite covers a wide range of functionality including JSON schema validation, utilities, data stores, core components, API operations, and integration tests. The organization by category makes it easy to understand the scope and dependencies of different test groups.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 62dad34 and c7d28f8.

📒 Files selected for processing (97)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_integration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/api/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/api/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/api/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/internal/test_s3select.js (1 hunks)
  • src/test/unit_tests/internal/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (12)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • package.json
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/framework/coretest/coretest.js
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js
  • Makefile
🚧 Files skipped from review as they are similar to previous changes (79)
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/nc/test_nc_master_keys.test.js
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_s3select.js
  • src/test/unit_tests/api/test_namespace_fs.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/internal/test_schema_keywords.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/unit_tests/api/test_ns_list_objects.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/api/test_namespace_fs_mpu.js
  • src/test/unit_tests/api/test_nc_lifecycle.test.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/unit_tests/api/test_bucketspace_fs.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/api/test_nsfs_versioning.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/api/s3/test_nsfs_integration.js
  • src/test/integration_tests/internal/test_public_access_block.js
  • src/test/system_tests/test_utils.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (9)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM! Good permission validation for NSFS root access.

The permission check properly validates that the process has sufficient privileges before running NSFS-related tests, which prevents test failures due to insufficient permissions.


17-25: Well-organized test imports with clear categorization.

The test imports are well-organized and cover the appropriate test categories for sudo-privileged operations. The comment clearly indicates these are tests that don't require host pools.

src/test/framework/index/nc_index.js (3)

8-25: Excellent test coverage and organization.

The test imports provide comprehensive coverage across various components including namespace filesystem, multi-part upload, native filesystem, CLI tools, health checks, and more. The organization is logical and well-structured.


26-29: Good documentation for tests with special setups.

The comments clearly indicate that these tests use different setups, which is helpful for understanding the test execution context and maintaining the test suite.


31-35: Clear TODO markers for future test enablement.

The TODO comments provide good visibility into which tests are temporarily disabled and need to be enabled in the future.

src/test/framework/index/index.js (4)

8-11: Excellent test categorization and organization.

The clear separation between tests that require host pools and those that don't is excellent for test execution optimization and understanding dependencies.


12-37: Comprehensive utility and schema test coverage.

The test imports provide excellent coverage of utility functions, JSON schema validation, and core components with clear categorical organization.


67-74: Good documentation for test pool requirements.

The comments clearly explain the transition from tests that don't require host pools to those that do, which helps with understanding test execution requirements and dependencies.


76-110: Well-organized pool-dependent tests with comprehensive coverage.

The tests requiring host pools are well-organized and cover all major components including servers, core functionality, API operations, and upgrade scenarios. The categorization is logical and maintainable.

Copy link
Contributor

@romayalon romayalon left a comment

Choose a reason for hiding this comment

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

added some comments on the files but there are some general things I wanted to raise -

  1. ceph tests/mint/warp/go-sdk tests - might be useful to move them to external tests dir or something similar
  2. the tree mentioned in the description is not compatible with the changes in the code so we should probably update it inorder to get an understanding of the new structure.
  3. we might want to split renames to a different PR

package.json Outdated
@@ -24,7 +24,7 @@
"test": "npm run lint && npm run mocha",
"ts": "tsc",
"lint": "eslint src --quiet",
"mocha": "node --allow-natives-syntax ./node_modules/.bin/_mocha src/test/unit_tests/index.js",
"mocha": "node --allow-natives-syntax ./node_modules/.bin/_mocha src/test/framework/index/index.js",
Copy link
Contributor

Choose a reason for hiding this comment

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

should index get a higher level due to its importance?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

what do you mean higher level? that it should be moved to the test root directory? I just wanted to be less directories there. I can move it there if you like

Copy link
Contributor Author

Choose a reason for hiding this comment

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

moved it to utils like with coretest

@@ -4,18 +4,18 @@
const mocha = require('mocha');
const assert = require('assert');
const _ = require('lodash');
const P = require('../../util/promise');
const coretest = require('./coretest');
const P = require('../../../../util/promise');
Copy link
Contributor

Choose a reason for hiding this comment

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

I wonder about the location of test_bucket_replication.js, currently it's in s3/ but the feature itself is not really s3 related right now, it's suppose to be in the future though
but currently it's configured via rpc only..

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think its better to keep it in s3 directory. the alternative is to move it to the internal directory which seems less relevant

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/index.js (1)

1-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c7d28f8 and 36a509f.

📒 Files selected for processing (97)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_integration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/api/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/api/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/api/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/api/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/internal/test_s3select.js (1 hunks)
  • src/test/unit_tests/internal/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
  • src/test/unit_tests/sudo_index.js
✅ Files skipped from review due to trivial changes (6)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/internal/test_map_client.js
🚧 Files skipped from review as they are similar to previous changes (85)
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/nc/test_nc_master_keys.test.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/api/test_nc_lifecycle.test.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/unit_tests/api/test_namespace_fs_mpu.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/unit_tests/internal/test_schema_keywords.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/internal/test_s3select.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/api/test_namespace_fs.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/unit_tests/api/test_ns_list_objects.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/api/s3/test_versioning_concurrency.test.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/unit_tests/api/test_bucketspace_fs.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/api/s3/test_bucketspace_versioning.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/unit_tests/api/test_nsfs_versioning.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/api/s3/test_nsfs_concurrency.test.js
  • src/test/framework/coretest/coretest.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • package.json
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_public_access_block.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/api/s3/test_nsfs_integration.js
  • src/test/system_tests/test_utils.js
  • Makefile
  • src/test/integration_tests/api/test_nc_iam_basic_integration.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (10)
src/test/framework/index/sudo_index.js (3)

5-7: LGTM: Core test setup is properly configured.

The coretest setup with incomplete_rpc_coverage: 'show' configuration is appropriate for this test index.


13-15: LGTM: Permission validation is correctly implemented.

The NSFS root permissions check properly validates user and group IDs before proceeding with tests that require elevated permissions.


18-24: LGTM: Test module imports are well-organized.

The test imports are logically grouped and use consistent relative paths to reference test modules in the reorganized structure.

src/test/framework/index/nc_index.js (3)

5-6: LGTM: Appropriate use of nc_coretest for NooBaa core tests.

The use of nc_coretest module is correct for this test index that focuses on NooBaa core functionality.


26-29: LGTM: Clear documentation of test setup differences.

The comments clearly indicate that certain tests use different setups, which is helpful for understanding the test configuration.


31-35: LGTM: TODO comments for future test enablement.

The TODO comments and commented-out test requires are appropriate for tracking future work without cluttering the current test execution.

src/test/framework/index/index.js (4)

5-6: LGTM: Proper core test setup configuration.

The coretest setup with incomplete_rpc_coverage: 'show' is appropriate for the main test index.


8-11: LGTM: Clear organization with descriptive section headers.

The section headers clearly separate tests that don't require host pools from those that do, improving test organization and understanding.


67-74: LGTM: Logical separation of host pool dependent tests.

The clear separation between tests that require host pools and those that don't is well-documented and helps with test execution planning.


12-110: LGTM: Comprehensive test coverage with good categorization.

The test imports are well-organized into logical categories (JSON Schema, Utils, Stores, Core, Servers, etc.) with appropriate comments. The mixture of active and commented-out tests with explanatory comments is appropriate for a main test index.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 36a509f and 1eca6b5.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (32)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • package.json
🚧 Files skipped from review as they are similar to previous changes (66)
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/api/s3/test_nc_lifecycle_expiration.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/framework/coretest/coretest.js
  • Makefile
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (15)
src/test/integration_tests/nsfs/test_bucketspace_versioning.js (4)

11-17: Import path updates look correct for the directory restructuring.

The relative path changes from two-level (../../) to three-level (../../../) are consistent with moving the test framework files deeper into the directory structure. The test_utils import path adjustment from ../system_tests/test_utils to ../../system_tests/test_utils correctly reflects the new directory layout.


16-16: Destructured import changes are correctly implemented.

The removal of get_coretest_path and addition of require_coretest in the destructured import aligns with the function renaming mentioned in the AI summary. This change standardizes the coretest loading mechanism across the test suite.


19-19: Config import path correctly updated.

The config import path has been properly deepened from three-level to four-level relative path (../../../../config), which is consistent with the new directory structure.


21-21: Coretest loading mechanism updated correctly.

The change from require(get_coretest_path()) to require_coretest() simplifies the coretest loading and is consistent with the function replacement described in the AI summary. The new function directly returns the required coretest module, making the code cleaner.

src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1)

9-15: Import path updates look correct for the directory restructuring.

The import paths have been consistently updated to add an additional directory traversal level (../), which aligns with the test framework reorganization described in the PR objectives.

src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3)

8-12: Import path updates are consistent with the directory restructuring.

The import paths have been correctly updated to reflect the deeper directory structure of the test framework reorganization.


93-93: Import path correctly updated.

The nc_master_key_manager import path has been appropriately updated for the new directory structure.


188-189: Import paths correctly updated for native utilities.

The nb_native and native_fs_utils import paths have been properly updated to reflect the new directory structure.

src/test/framework/index/sudo_index.js (2)

13-15: Good permission validation for sudo tests.

The permission check appropriately ensures that tests requiring elevated permissions have the necessary access before proceeding.


5-25: Well-organized test suite setup.

The test organization is clear with appropriate coretest setup and logical grouping of NSFS-related tests that require elevated permissions.

src/test/framework/index/nc_index.js (2)

5-30: Well-organized NooBaa core test suite.

The test organization is comprehensive and well-structured, covering various aspects of the NooBaa core system including NSFS, API, CLI, and integration tests. The comments noting different setups for specific tests are helpful.


31-35: TODO comments are appropriate for temporarily disabled tests.

The TODO comments clearly indicate tests that should be enabled when supported, providing good documentation for future maintenance.

src/test/framework/index/index.js (3)

5-11: Good test framework initialization.

The coretest setup with incomplete RPC coverage visibility is appropriate for a comprehensive test suite.


12-101: Excellent test organization and comprehensive coverage.

The test suite is well-organized with clear sections for different components (JSON schema, utils, stores, core, servers) and logical separation between tests that require host pools and those that don't. The comprehensive coverage includes unit tests, integration tests, and system tests across various modules.


102-110: Good organization of specialized test categories.

The upgrade tests and lifecycle tests are appropriately grouped, and the TODO comment for postgres upgrade tests provides useful context for future maintenance.

Copy link

@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: 0

🧹 Nitpick comments (4)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (2)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */

31-35: TODO comments indicate future work.

The commented-out tests with TODO notes suggest these features are not yet supported. Consider creating tracking issues for these items to ensure they're not forgotten.

Would you like me to help create GitHub issues to track enabling these commented tests?

src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6 modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1eca6b5 and 38300a1.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (3)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (11)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • package.json
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/nsfs/test_namespace_fs.js
🚧 Files skipped from review as they are similar to previous changes (89)
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/framework/coretest/coretest.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • Makefile
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/system_tests/test_utils.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (7)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM: Permission check implementation is correct.

The permission check properly validates NSFS root permissions using process UID/GID and provides a clear error message.


17-25: LGTM: Test organization is well-structured.

The test imports are properly organized and the comment clearly indicates these are tests that don't require host pools.

src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (2)

7-10: LGTM: Import paths correctly updated for new directory structure.

The import paths have been properly adjusted to reflect the deeper directory structure, adding the necessary ../ segments.


12-12: LGTM: Coretest requirement updated correctly.

The change from get_coretest_path() to require_coretest() aligns with the PR objective to replace the path resolution function with a direct require helper.

src/test/framework/index/nc_index.js (1)

8-30: LGTM: Test organization is comprehensive and well-documented.

The test imports are well-organized and the comments clearly indicate which tests use different setups. This helps maintain clarity about test requirements.

src/test/framework/index/index.js (2)

8-11: LGTM: Clear test organization with helpful comments.

The organization into groups based on host pool requirements is logical and well-documented, making it easy to understand test dependencies.


12-110: LGTM: Comprehensive test coverage with good organization.

The test imports cover a wide range of functionality including:

  • JSON schema validation
  • Utility modules
  • Data stores
  • Core internal components
  • API tests
  • Server components
  • S3 operations
  • Encryption and lifecycle

The separation between tests requiring and not requiring host pools is helpful for understanding test execution requirements.

Copy link

@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: 0

🧹 Nitpick comments (7)
src/test/framework/index/sudo_index.js (2)

1-2: Remove redundant 'use strict' directive.

ES6 modules are automatically in strict mode, making this directive redundant.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */

26-26: Remove trailing empty line.

There's an unnecessary trailing line at the end of the file.

-
src/test/framework/index/nc_index.js (3)

1-2: Remove redundant 'use strict' directive.

ES6 modules are automatically in strict mode, making this directive redundant.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */

31-35: Track TODO items for unsupported tests.

Multiple tests are commented out with TODO notes. Consider creating tracking issues for these incomplete test modules to ensure they're eventually enabled.

Would you like me to help create GitHub issues to track these disabled tests?


36-36: Remove trailing empty line.

There's an unnecessary trailing line at the end of the file.

-
src/test/framework/index/index.js (2)

1-2: Remove redundant 'use strict' directive.

ES6 modules are automatically in strict mode, making this directive redundant.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */

111-111: Remove trailing empty line.

There's an unnecessary trailing line at the end of the file.

-
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 38300a1 and e52c525.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
⛔ Files not processed due to max files limit (1)
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (2)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (11)
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
🚧 Files skipped from review as they are similar to previous changes (91)
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • package.json
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/integration_tests/internal/test_map_reader.js
  • Makefile
  • src/test/framework/coretest/coretest.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/system_tests/test_utils.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (4)
src/test/framework/index/sudo_index.js (1)

13-15: Good permission validation for sudo tests.

The permission check using test_utils.invalid_nsfs_root_permissions() is appropriate for tests requiring elevated privileges. The error message provides useful debugging information.

src/test/framework/index/nc_index.js (1)

26-29: Good documentation of special test configurations.

The comments clearly explain which tests use different setups, which is helpful for maintainers.

src/test/framework/index/index.js (2)

8-74: Excellent test organization and categorization.

The clear separation between tests that don't require host pools and those that do is well-structured. The categorical organization (JSON Schema, Utils, Stores, Core, Servers) makes it easy to understand test coverage and add new tests appropriately.


76-107: Good separation of host pool dependent tests.

The organization clearly identifies which tests require host pools, which is crucial for test execution planning and debugging. The comments provide helpful context about test requirements.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6+ modules as they are automatically in strict mode.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6+ modules as they are automatically in strict mode.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

The 'use strict' directive is redundant in ES6+ modules as they are automatically in strict mode.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e52c525 and bfb1a75.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
⛔ Files not processed due to max files limit (1)
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (2)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (15)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
🚧 Files skipped from review as they are similar to previous changes (87)
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/db/test_mdsequence.js
  • package.json
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/framework/coretest/coretest.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • Makefile
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (6)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM! Permission check logic is correct.

The permission validation correctly checks both user ID and group ID before proceeding with NSFS tests that require elevated permissions.


17-25: Well-organized test imports following new directory structure.

The test imports are properly organized and correctly reference the new directory structure from the refactoring.

src/test/framework/index/nc_index.js (2)

26-29: Excellent documentation for test setup variations.

The comments clearly explain when tests use different setups, which is valuable for maintainability and understanding test dependencies.


8-25: Comprehensive test coverage with proper organization.

The test imports cover a wide range of NC components and are well-organized. The new directory structure is correctly referenced throughout.

src/test/framework/index/index.js (2)

8-11: Excellent test categorization and documentation.

The clear separation between tests that require host pools and those that don't, along with descriptive comments, greatly improves maintainability and understanding of test dependencies.


12-110: Comprehensive test coverage with logical organization.

The test imports are excellently organized by functional areas (JSON Schema, Utils, Stores, Core, Servers, etc.) and maintain comprehensive coverage during the directory restructuring. The new import paths correctly reference the reorganized directory structure.

Copy link

@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: 0

🧹 Nitpick comments (4)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

ES modules are automatically in strict mode, making this directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
src/test/framework/index/nc_index.js (2)

1-2: Remove redundant 'use strict' directive.

ES modules are automatically in strict mode, making this directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */

31-35: Track the TODO items for test migration completion.

The commented-out tests indicate incomplete migration. Consider creating issues to track when these tests should be enabled.

Would you like me to help create GitHub issues to track the enablement of these commented-out tests?

src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

ES modules are automatically in strict mode, making this directive unnecessary.

-/* Copyright (C) 2016 NooBaa */
-'use strict';
+/* Copyright (C) 2016 NooBaa */
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bfb1a75 and fc8c687.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
⛔ Files not processed due to max files limit (1)
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (2)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (12)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • package.json
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
🚧 Files skipped from review as they are similar to previous changes (90)
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/framework/coretest/coretest.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • Makefile
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (10)
src/test/framework/index/sudo_index.js (3)

5-7: LGTM: Clean framework setup.

The coretest setup with incomplete RPC coverage visibility is appropriate for a test entry point.


13-15: LGTM: Appropriate permission validation.

The NSFS root permission check is essential for sudo-related tests and provides clear error messaging.


18-24: LGTM: Well-organized test imports.

The test module imports are logically grouped and focus appropriately on NSFS and NC components that require elevated permissions.

src/test/framework/index/nc_index.js (2)

5-6: LGTM: Appropriate NC framework setup.

The nc_coretest setup is correctly configured for namespace controller tests.


26-29: LGTM: Clear documentation of special test setups.

The comments clearly indicate that these tests use different setups, which is important for maintainability.

src/test/framework/index/index.js (5)

5-6: LGTM: Appropriate framework setup.

The coretest setup with incomplete RPC coverage visibility is well-configured for the main test entry point.


8-11: LGTM: Excellent test organization.

The clear separation between tests that don't require host pools and those that do is crucial for test execution efficiency and reliability.


12-64: LGTM: Comprehensive test coverage without host pool dependencies.

The test imports are well-organized by functional areas (JSON schema, utils, stores, core) and appropriately grouped for tests that don't require host pools.


67-74: LGTM: Clear transition to pool-dependent tests.

The comments clearly delineate the transition to tests requiring host pools, which is important for understanding test dependencies.


76-107: LGTM: Comprehensive pool-dependent test coverage.

The test imports for pool-dependent tests are well-organized and cover all major system components that require host pools.

Copy link

@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: 0

🧹 Nitpick comments (3)
src/test/framework/index/sudo_index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
src/test/framework/index/nc_index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
src/test/framework/index/index.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making the explicit directive unnecessary.

 /* Copyright (C) 2016 NooBaa */
-'use strict';
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fc8c687 and e1a3c1f.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (4 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/coretest/coretest.js (2 hunks)
  • src/test/framework/coretest/nc_coretest.js (2 hunks)
  • src/test/framework/index/index.js (1 hunks)
  • src/test/framework/index/nc_index.js (1 hunks)
  • src/test/framework/index/sudo_index.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
⛔ Files not processed due to max files limit (2)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (2)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (10)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
🚧 Files skipped from review as they are similar to previous changes (92)
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • package.json
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/framework/coretest/nc_coretest.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/framework/coretest/coretest.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • Makefile
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/framework/index/index.js
  • src/test/framework/index/nc_index.js
  • src/test/framework/index/sudo_index.js
🪛 Biome (1.9.4)
src/test/framework/index/index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/nc_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/framework/index/sudo_index.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (7)
src/test/framework/index/sudo_index.js (2)

13-15: LGTM! Appropriate permission validation for sudo tests.

The NSFS root permissions check is correctly implemented with informative error messaging including process IDs for debugging.


17-24: Well-organized test suite for NSFS and NC components.

The test selection is appropriate for sudo tests that don't require host pools, with clear focus on NSFS access, integration, versioning, and NC CLI/health tools.

src/test/framework/index/nc_index.js (2)

26-29: Excellent documentation for tests with special setups.

The comments clearly indicate which tests use different configurations (IAM port, multiple forks), which is valuable for maintainers understanding the test execution context.


31-35: Appropriate handling of disabled tests.

The TODO comment and commented-out requires provide clear indication of tests that should be enabled when supported, making it easy to track pending test coverage.

src/test/framework/index/index.js (3)

8-11: Excellent test organization with clear categorization.

The separation between tests that do and don't require host pools is well-documented and provides clear guidance for test execution and maintenance.


67-74: Clear transition point between test categories.

The comments effectively mark the transition from non-host-pool tests to host-pool-required tests, with appropriate explanation of the system initialization step.


102-109: Well-structured specialized test sections.

The organization of upgrade tests, lifecycle tests, and MD sequence tests into distinct sections makes the test suite easy to navigate and maintain.

Copy link

@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: 2

🧹 Nitpick comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

81-83: Fix Markdown list style / indentation
Lines 81-83 violate MD004 and MD007 (unordered-list style & indent). Two spaces before the asterisk keeps the list nesting consistent and silences the linter.

-* Run **a single** mocha test locally -  
-        Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/{test_type}/{test_name}.js`
+  * Run **a single** mocha test locally –  
+    Command: `sudo env NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/{test_type}/{test_name}.js`
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e1a3c1f and e8eb85a.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (5 hunks)
  • docs/NooBaaNonContainerized/CI&Tests.md (2 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/different_clients/test_go_sdkv2_script.js (1 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (2 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/coretest.js (0 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js (1 hunks)
  • src/test/unit_tests/nc_coretest.js (0 hunks)
  • src/test/unit_tests/nc_index.js (0 hunks)
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js (1 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs.js (2 hunks)
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_access.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js (1 hunks)
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js (1 hunks)
  • src/test/unit_tests/sudo_index.js (0 hunks)
💤 Files with no reviewable changes (5)
  • src/test/unit_tests/sudo_index.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/index.js
  • src/test/unit_tests/coretest.js
  • src/test/unit_tests/nc_coretest.js
✅ Files skipped from review due to trivial changes (10)
  • src/test/system_tests/test_md_aggregator.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • package.json
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
🚧 Files skipped from review as they are similar to previous changes (91)
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/different_clients/test_go_sdkv2_script.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • Makefile
🧰 Additional context used
🧠 Learnings (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 LanguageTool
docs/NooBaaNonContainerized/CI&Tests.md

[duplication] ~79-~79: Possible typo: you repeated a word.
Context: ...ocha tests locally - Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/utils/...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~82-~82: Possible typo: you repeated a word.
Context: ...mocha test locally - Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/{test_...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~165-~165: Possible typo: you repeated a word.
Context: ...ocha tests locally - Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~168-~168: Possible typo: you repeated a word.
Context: ...mocha test locally - Command: `sudo node node_modules/mocha/bin/mocha src/test/{test_...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)
docs/NooBaaNonContainerized/CI&Tests.md

81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


167-167: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


167-167: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

⏰ 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). (3)
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
  • GitHub Check: Build Noobaa Image

Copy link

@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

♻️ Duplicate comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

79-82: sudo drops NC_CORETEST – previous remark still applies
The command still prefixes the environment variable after sudo, so NC_CORETEST is not propagated to the test process on most systems.

- sudo NC_CORETEST=true node node_modules/mocha/bin/mocha …
+ sudo env NC_CORETEST=true node node_modules/mocha/bin/mocha …

Same fix is required for the single-test variant two lines below.

🧹 Nitpick comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

165-168: Markdown list style / indentation
Lines are indented with * instead of the surrounding -, violating MD004 / MD007.

-* Run **all** NSFS mocha tests locally -
-        Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.
+  - Run **all** NSFS mocha tests locally –  
+        Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8eb85a and a0b2281.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/NooBaaNonContainerized/CI&Tests.md (2 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (1 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/test_go_sdkv2_script.js (1 hunks)
  • src/test/external_tests/warp/configure_warp.js (1 hunks)
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh (1 hunks)
  • src/test/external_tests/warp/run_warp.js (1 hunks)
  • src/test/external_tests/warp/run_warp_on_test_container.sh (2 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (3 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js (1 hunks)
⛔ Files not processed due to max files limit (8)
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (1)
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (17)
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh
  • src/test/external_tests/warp/run_warp_on_test_container.sh
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/external_tests/warp/configure_warp.js
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/external_tests/test_go_sdkv2_script.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/external_tests/mint/run_mint_on_test_container.sh
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh
  • src/test/external_tests/warp/run_warp.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh
🚧 Files skipped from review as they are similar to previous changes (87)
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • package.json
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/system_tests/test_utils.js
🧰 Additional context used
🧠 Learnings (2)
Makefile (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
docs/NooBaaNonContainerized/CI&Tests.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 LanguageTool
docs/NooBaaNonContainerized/CI&Tests.md

[duplication] ~79-~79: Possible typo: you repeated a word.
Context: ...ocha tests locally - Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/utils/...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~82-~82: Possible typo: you repeated a word.
Context: ...mocha test locally - Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/{test_...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~165-~165: Possible typo: you repeated a word.
Context: ...ocha tests locally - Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/...

(ENGLISH_WORD_REPEAT_RULE)


[duplication] ~168-~168: Possible typo: you repeated a word.
Context: ...mocha test locally - Command: `sudo node node_modules/mocha/bin/mocha src/test/{test_...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)
docs/NooBaaNonContainerized/CI&Tests.md

81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


167-167: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


167-167: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: run-package-lock-validation
🔇 Additional comments (10)
Makefile (10)

271-272: Path update looks correct
Switching to utils/index/sudo_index.js matches the new directory layout.


283-284: Verify $(testname) still resolves to the new path scheme
run_npm_test_on_test_container.sh now resolves paths relative to src/test/.
Confirm that callers pass values like unit/api/test_foo.js (without src/test/ prefix) or adapt the script call accordingly.


293-294: LGTM – NC test runner updated
The index file path reflects the new utils/index/ location.


304-305: Same path-resolution concern as for Mongo single-test
Ensure $(testname) matches the expectations of run_npm_test_on_test_container.sh.


349-350: Ceph-S3 external tests path updated correctly
No issues spotted.


360-361: Warp external tests path updated correctly
No issues spotted.


368-369: NC-Warp path updated correctly
Looks good.


376-377: Mint tests path updated correctly
No issues spotted.


394-395: NC-Mint path updated correctly
Looks good.


409-410: NSFS Ceph-S3 path updated correctly
No issues spotted.

@nadavMiz nadavMiz force-pushed the test_folders branch 3 times, most recently from dcdacc4 to dc584f4 Compare July 8, 2025 10:04
Copy link

@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: 0

🔭 Outside diff range comments (2)
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (2)

88-93: Stale path – still points to system_tests after the migration
The job manifest path was migrated to external_tests, but this example still references the old location:

kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_job.yml

Please update to keep the documentation consistent:

-kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_job.yml
+kubectl apply -f src/test/external_tests/ceph_s3_tests/test_ceph_s3_job.yml

127-133: Same out-of-date path in the tester-deployment snippet
This snippet still uses the old directory:

kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_deployment.yml

Update to:

-kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_deployment.yml
+kubectl apply -f src/test/external_tests/ceph_s3_tests/test_ceph_s3_deployment.yml
♻️ Duplicate comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

79-82: Environment variable still dropped under sudo (repeat of prior feedback)
Prefix the command with env (or use sudo -E) so NC_CORETEST survives privilege escalation:

-sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/utils/index/nc_index.js
+sudo env NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/utils/index/nc_index.js
🧹 Nitpick comments (2)
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)

158-160: Markdown-lint: bullet style & indent
The new list items use * with 4-space indent, conflicting with the surrounding - / 2-space convention (MD004/MD007). Harmonise to avoid future linter noise.

Also applies to: 174-178

docs/NooBaaNonContainerized/CI&Tests.md (1)

165-168: Minor: align list-indent and dash style
These two bullet points break MD004/MD007 the same way the earlier section did. Convert *- and keep a 2-space indent for consistency.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a0b2281 and dc584f4.

📒 Files selected for processing (107)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/NooBaaNonContainerized/CI&Tests.md (2 hunks)
  • docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (3 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh (1 hunks)
  • src/test/external_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/test_go_sdkv2_script.js (1 hunks)
  • src/test/external_tests/warp/configure_warp.js (1 hunks)
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh (1 hunks)
  • src/test/external_tests/warp/run_warp.js (1 hunks)
  • src/test/external_tests/warp/run_warp_on_test_container.sh (2 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (3 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js (1 hunks)
⛔ Files not processed due to max files limit (10)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (1)
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (8)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • package.json
  • src/test/system_tests/test_md_aggregator.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh
🚧 Files skipped from review as they are similar to previous changes (96)
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh
  • src/test/external_tests/mint/run_mint_on_test_container.sh
  • src/test/external_tests/warp/run_warp.js
  • src/test/external_tests/warp/configure_warp.js
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh
  • src/test/external_tests/warp/run_warp_on_test_container.sh
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh
  • src/test/unit_tests/internal/test_chunk_coder.js
  • .github/workflows/nightly-tests.yaml
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/external_tests/test_go_sdkv2_script.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/system_tests/test_utils.js
  • Makefile
🧰 Additional context used
🧠 Learnings (2)
docs/NooBaaNonContainerized/CI&Tests.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 LanguageTool
docs/NooBaaNonContainerized/CI&Tests.md

[grammar] ~79-~79: Use proper spacing conventions.
Context: ...mocha src/test/utils/index/nc_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~81-~81: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo NC_CORETEST=tr...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~82-~82: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js. * Run NC jest tests- * Command:s...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[grammar] ~165-~165: Use proper spacing conventions.
Context: ...cha src/test/utils/index/sudo_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~167-~167: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo node node_modules/mocha/bin/moch...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~168-~168: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js`. #### NSFS Tests Files List With NamespaceFS n...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md

[grammar] ~161-~161: Use articles correctly.
Context: ...ide The Tester Pod) To run a test, from noobaa working directory: ```bash S3TEST_CONF=...

(QB_NEW_EN_OTHER_ERROR_IDS_000004)


[grammar] ~161-~161: Use proper spacing conventions.
Context: ...n a test, from noobaa working directory: bash S3TEST_CONF=${PWD}/src/test/external_tests/ceph_s3_tests/test_ceph_s3_config.conf tox -c src/test/external_tests/ceph_s3_tests/s3-tests/tox.ini ${PWD}/src/test/external_tests/ceph_s3_tests/s3-tests/<test_name> This should run the test on the noobaa d...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

🪛 markdownlint-cli2 (0.17.2)
docs/NooBaaNonContainerized/CI&Tests.md

81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


167-167: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


167-167: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md

158-158: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


159-159: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


159-159: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


160-160: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


160-160: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


162-162: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

⏰ 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). (3)
  • GitHub Check: run-package-lock-validation
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (3)
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (3)

150-153: Helper script path was not migrated
test_ceph_s3_config_setup.js now lives under external_tests, but the doc still points to system_tests.
Search & replace the entire document to avoid future drift.


181-187: Follow-up: fix the “add --disable-pytest-warnings” example
All four occurrences in this multi-line example still reference system_tests; adjust as above to keep examples runnable.


157-164: Mixed directories in the same command block
You correctly changed the S3TEST_CONF and tox -c paths to external_tests, yet the working-directory string ${PWD}/src/test/system_tests/... inside the same command is left behind. This will break copy-paste execution.

-... ${PWD}/src/test/system_tests/ceph_s3_tests/s3-tests/...
+... ${PWD}/src/test/external_tests/ceph_s3_tests/s3-tests/...
⛔ Skipped due to learnings
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.

Copy link

@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: 0

🔭 Outside diff range comments (1)
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)

149-166: Outdated system_tests paths break the updated workflow

The surrounding section mixes the new external_tests paths (lines 157/163) with several still-existing system_tests paths (e.g. 151, 152, 131, 88). Anyone copy-pasting will hit file-not-found errors because the files were relocated in this PR.

- node ./src/test/system_tests/ceph_s3_tests/test_ceph_s3_config_setup.js
+ node ./src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_setup.js

- kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_job.yml
+ kubectl apply -f src/test/external_tests/ceph_s3_tests/test_ceph_s3_job.yml

- kubectl apply -f src/test/system_tests/ceph_s3_tests/test_ceph_s3_deployment.yml
+ kubectl apply -f src/test/external_tests/ceph_s3_tests/test_ceph_s3_deployment.yml

Search the entire doc for src/test/system_tests/ceph_s3_tests/ and update all occurrences to the new location to keep the guide reliable.

♻️ Duplicate comments (2)
docs/NooBaaNonContainerized/CI&Tests.md (2)

79-82: NC_CORETEST still stripped by sudo

Same observation as in the previous review: prefixing the env-var directly to sudo causes it to be discarded on most systems. Use sudo env … (or sudo -E) so the test harness actually receives NC_CORETEST=true.

-Command: `sudo NC_CORETEST=true node node_modules/mocha/bin/mocha src/test/utils/index/nc_index.js`.
+Command: `sudo env NC_CORETEST=true \
+  node node_modules/mocha/bin/mocha src/test/utils/index/nc_index.js`.

Apply the same fix to the single-test command two lines below.


165-168: Environment still not preserved for NSFS mocha commands

Re-raise of the prior feedback: use sudo env (or sudo -E) to keep the current environment when invoking Mocha; otherwise tests that rely on inherited vars silently break.

-Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.
+Command: `sudo env \
+  node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.

Do the same for the single-test variant.

🧹 Nitpick comments (3)
docs/NooBaaNonContainerized/CI&Tests.md (2)

76-83: Minor markdown style drift (unordered list)

Lines under this bullet mix asterisks and incorrect 4-space indentation, triggering MD004/MD007. Convert the inner bullets to - and indent by two spaces for consistency.


162-168: Markdown lint: bullet style / indentation

The nested list here also violates MD004/MD007. Use - with two-space indent to align with the rest of the document.

docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)

160-162: Minor wording fix

“run a test, from noobaa working directory:” → “run a test from the NooBaa working directory:” improves grammar and casing.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dc584f4 and 5759eea.

📒 Files selected for processing (107)
  • .eslintignore (1 hunks)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/NooBaaNonContainerized/CI&Tests.md (2 hunks)
  • docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (3 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_constants.js (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh (1 hunks)
  • src/test/external_tests/external_tests_utils.js (1 hunks)
  • src/test/external_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/test_go_sdkv2_script.js (1 hunks)
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh (1 hunks)
  • src/test/external_tests/warp/run_warp_on_test_container.sh (2 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (3 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js (1 hunks)
⛔ Files not processed due to max files limit (11)
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (1)
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (13)
  • .eslintignore
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_constants.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/external_tests/external_tests_utils.js
  • package.json
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
🚧 Files skipped from review as they are similar to previous changes (91)
  • src/test/external_tests/mint/run_mint_on_test_container.sh
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/external_tests/warp/run_warp_on_test_container.sh
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • .github/workflows/nightly-tests.yaml
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/external_tests/test_go_sdkv2_script.js
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh
  • src/test/integration_tests/db/test_system_store.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/system_tests/test_utils.js
  • Makefile
🧰 Additional context used
🧠 Learnings (2)
docs/NooBaaNonContainerized/CI&Tests.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 LanguageTool
docs/NooBaaNonContainerized/CI&Tests.md

[grammar] ~79-~79: Use proper spacing conventions.
Context: ...mocha src/test/utils/index/nc_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~81-~81: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo NC_CORETEST=tr...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~82-~82: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js. * Run NC jest tests- * Command:s...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[grammar] ~165-~165: Use proper spacing conventions.
Context: ...cha src/test/utils/index/sudo_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~167-~167: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo node node_modules/mocha/bin/moch...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~168-~168: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js`. #### NSFS Tests Files List With NamespaceFS n...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md

[grammar] ~161-~161: Use articles correctly.
Context: ...ide The Tester Pod) To run a test, from noobaa working directory: ```bash S3TEST_CONF=...

(QB_NEW_EN_OTHER_ERROR_IDS_000004)


[grammar] ~161-~161: Use proper spacing conventions.
Context: ...n a test, from noobaa working directory: bash S3TEST_CONF=${PWD}/src/test/external_tests/ceph_s3_tests/test_ceph_s3_config.conf tox -c src/test/external_tests/ceph_s3_tests/s3-tests/tox.ini ${PWD}/src/test/external_tests/ceph_s3_tests/s3-tests/<test_name> This should run the test on the noobaa d...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

🪛 markdownlint-cli2 (0.17.2)
docs/NooBaaNonContainerized/CI&Tests.md

81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


167-167: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


167-167: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

⏰ 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). (3)
  • GitHub Check: run-jest-unit-tests
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation

Signed-off-by: nadav mizrahi <nadav.mizrahi16@gmail.com>
Copy link

@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

♻️ Duplicate comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

79-83: NC_CORETEST is still stripped by sudo — previous remark not addressed

Because sudo resets most env-vars, the commands will silently drop NC_CORETEST=true.
Same fix suggested earlier still applies:

- sudo NC_CORETEST=true node node_modules/mocha/bin/mocha …
+ sudo env NC_CORETEST=true node node_modules/mocha/bin/mocha …

Please update both the “all tests” and “single test” variants.

🧹 Nitpick comments (1)
docs/NooBaaNonContainerized/CI&Tests.md (1)

165-168: Consistent bullet style & Markdown-lint nit

Static-analysis flags MD004/MD007 because these list items use * while the rest of the doc uses -, and the indentation is off by two spaces. Aligning the list keeps the doc lint-clean:

-* Run **all** NSFS mocha tests locally -  
-    Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.  
+- Run **all** NSFS mocha tests locally -  
+  Command: `sudo node node_modules/mocha/bin/mocha src/test/utils/index/sudo_index.js`.  

Same for the single-test bullet below.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5759eea and 1a6786c.

📒 Files selected for processing (107)
  • .eslintignore (1 hunks)
  • .github/workflows/nightly-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/NooBaaNonContainerized/CI&Tests.md (2 hunks)
  • docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1 hunks)
  • package.json (1 hunks)
  • src/deploy/NVA_build/Tests.Dockerfile (3 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_setup.js (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_constants.js (1 hunks)
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh (1 hunks)
  • src/test/external_tests/external_tests_utils.js (1 hunks)
  • src/test/external_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/external_tests/test_go_sdkv2_script.js (1 hunks)
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh (1 hunks)
  • src/test/external_tests/warp/run_warp_on_test_container.sh (2 hunks)
  • src/test/framework/run_npm_test_on_test_container.sh (1 hunks)
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js (2 hunks)
  • src/test/integration_tests/api/s3/test_bucket_logging.js (1 hunks)
  • src/test/integration_tests/api/s3/test_bucket_replication.js (6 hunks)
  • src/test/integration_tests/api/s3/test_lifecycle.js (1 hunks)
  • src/test/integration_tests/api/s3/test_namespace_auth.js (2 hunks)
  • src/test/integration_tests/api/s3/test_notifications.js (2 hunks)
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js (1 hunks)
  • src/test/integration_tests/api/s3/test_public_access_block.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_encryption.js (2 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_list_objects.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_ops.js (1 hunks)
  • src/test/integration_tests/api/s3/test_s3_worm.js (1 hunks)
  • src/test/integration_tests/api/sts/test_sts.js (1 hunks)
  • src/test/integration_tests/db/test_md_aggregator_unit.js (2 hunks)
  • src/test/integration_tests/db/test_md_store.js (1 hunks)
  • src/test/integration_tests/db/test_mdsequence.js (1 hunks)
  • src/test/integration_tests/db/test_nodes_store.js (1 hunks)
  • src/test/integration_tests/db/test_postgres_upgrade.js (1 hunks)
  • src/test/integration_tests/db/test_system_store.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js (2 hunks)
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js (2 hunks)
  • src/test/integration_tests/internal/test_dedup.js (1 hunks)
  • src/test/integration_tests/internal/test_encryption.js (2 hunks)
  • src/test/integration_tests/internal/test_host_server.js (1 hunks)
  • src/test/integration_tests/internal/test_map_builder.js (1 hunks)
  • src/test/integration_tests/internal/test_map_client.js (1 hunks)
  • src/test/integration_tests/internal/test_map_deleter.js (2 hunks)
  • src/test/integration_tests/internal/test_map_reader.js (2 hunks)
  • src/test/integration_tests/internal/test_node_allocator.js (1 hunks)
  • src/test/integration_tests/internal/test_node_server.js (1 hunks)
  • src/test/integration_tests/internal/test_object_io.js (2 hunks)
  • src/test/integration_tests/internal/test_system_servers.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js (1 hunks)
  • src/test/integration_tests/internal/test_tiering_upload.js (3 hunks)
  • src/test/integration_tests/internal/test_upgrade_scripts.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js (2 hunks)
  • src/test/integration_tests/nc/cli/test_nc_cli.js (1 hunks)
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js (1 hunks)
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js (1 hunks)
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_health.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js (1 hunks)
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js (1 hunks)
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js (1 hunks)
  • src/test/integration_tests/nsfs/test_nsfs_integration.js (1 hunks)
  • src/test/system_tests/test_md_aggregator.js (1 hunks)
  • src/test/system_tests/test_utils.js (3 hunks)
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_list_object.test.js (1 hunks)
  • src/test/unit_tests/api/s3/test_ns_list_objects.js (1 hunks)
  • src/test/unit_tests/api/s3/test_s3select.js (1 hunks)
  • src/test/unit_tests/db/test_migration_to_postgres.js (1 hunks)
  • src/test/unit_tests/db/test_postgres_client.js (1 hunks)
  • src/test/unit_tests/db/test_schema_keywords.js (1 hunks)
  • src/test/unit_tests/index.js (0 hunks)
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js (1 hunks)
  • src/test/unit_tests/internal/test_bucket_diff.test.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_coder.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_config_utils.js (1 hunks)
  • src/test/unit_tests/internal/test_chunk_splitter.js (1 hunks)
  • src/test/unit_tests/internal/test_debug_module.js (1 hunks)
  • src/test/unit_tests/internal/test_keys_semaphore.js (1 hunks)
  • src/test/unit_tests/internal/test_mapper.js (2 hunks)
  • src/test/unit_tests/internal/test_mirror_writer.js (1 hunks)
  • src/test/unit_tests/internal/test_namespace_cache.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_b64.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_fs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_gpfs.js (1 hunks)
  • src/test/unit_tests/native/test_nb_native_hashes.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js (3 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js (1 hunks)
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js (1 hunks)
⛔ Files not processed due to max files limit (12)
  • src/test/unit_tests/nc/configuration/test_nc_upgrade_manager.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_gpfs_ilm_integration.test.js
  • src/test/unit_tests/nc/lifecycle/test_nc_lifecycle_posix_integration.test.js
  • src/test/unit_tests/nc_index.js
  • src/test/unit_tests/nsfs/test_bucketspace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs.js
  • src/test/unit_tests/nsfs/test_namespace_fs_mpu.js
  • src/test/unit_tests/nsfs/test_nsfs_access.js
  • src/test/unit_tests/nsfs/test_nsfs_glacier_backend.js
  • src/test/unit_tests/nsfs/test_nsfs_versioning.js
  • src/test/unit_tests/sudo_index.js
💤 Files with no reviewable changes (1)
  • src/test/unit_tests/index.js
✅ Files skipped from review due to trivial changes (7)
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_setup.js
  • src/test/system_tests/test_md_aggregator.js
  • src/test/integration_tests/nc/tools/test_nc_bucket_logging.js
  • src/test/integration_tests/internal/test_agent_blocks_verifier.js
  • package.json
  • src/test/integration_tests/nc/tools/test_cli_upgrade.test.js
  • src/test/integration_tests/internal/test_node_allocator.js
🚧 Files skipped from review as they are similar to previous changes (97)
  • src/test/external_tests/warp/run_nc_warp_on_test_container.sh
  • .github/workflows/nightly-tests.yaml
  • src/test/external_tests/mint/run_nc_mint_on_test_container.sh
  • src/test/external_tests/mint/run_mint_on_test_container.sh
  • src/test/external_tests/ceph_s3_tests/run_ceph_nsfs_test_on_test_container.sh
  • src/test/unit_tests/native/test_nb_native_b64.js
  • src/test/unit_tests/api/iam/test_iam_ops_input_validation.test.js
  • src/test/unit_tests/internal/test_debug_module.js
  • src/test/unit_tests/db/test_migration_to_postgres.js
  • src/test/unit_tests/native/test_nb_native_gpfs.js
  • .eslintignore
  • src/test/integration_tests/api/s3/test_bucket_logging.js
  • src/test/external_tests/external_tests_utils.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_deploy.sh
  • src/test/integration_tests/nc/tools/test_nc_health.js
  • src/test/integration_tests/api/s3/test_s3_worm.js
  • src/test/integration_tests/api/s3/test_namespace_auth.js
  • src/test/integration_tests/nc/tools/test_cli_diagnose.test.js
  • src/test/unit_tests/internal/test_keys_semaphore.js
  • src/test/unit_tests/internal/test_chunk_coder.js
  • src/test/integration_tests/api/s3/test_s3_list_buckets.js
  • src/test/unit_tests/db/test_postgres_client.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_config_and_run_s3_tests.sh
  • src/test/framework/run_npm_test_on_test_container.sh
  • src/test/unit_tests/internal/test_chunk_config_utils.js
  • src/test/unit_tests/nc/configuration/test_nc_account_invalid_mkm_integration.test.js
  • src/test/integration_tests/db/test_mdsequence.js
  • src/test/integration_tests/api/s3/test_lifecycle.js
  • src/test/integration_tests/api/s3/test_public_access_block.js
  • src/test/integration_tests/api/s3/test_s3_ops.js
  • src/test/integration_tests/api/s3/test_s3_bucket_policy.js
  • src/test/integration_tests/internal/test_node_server.js
  • src/test/external_tests/warp/run_warp_on_test_container.sh
  • src/test/unit_tests/native/test_nb_native_hashes.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_s3_integrations.js
  • src/test/unit_tests/internal/test_chunk_splitter.js
  • src/test/unit_tests/internal/test_bucket_diff.test.js
  • src/test/unit_tests/api/s3/test_list_object.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_bucket_schema_validation.test.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_config_schema_validation.test.js
  • src/test/unit_tests/internal/test_bucket_chunks_builder.js
  • src/test/unit_tests/nc/configuration/test_config_dir_structure.test.js
  • src/test/unit_tests/internal/test_namespace_cache.js
  • src/test/unit_tests/nc/configuration/test_config_dir_restructure_upgrade_script.test.js
  • src/test/integration_tests/internal/test_host_server.js
  • src/test/integration_tests/db/test_postgres_upgrade.js
  • src/test/integration_tests/internal/test_tiering_ttl_worker.js
  • src/test/integration_tests/db/test_md_store.js
  • src/test/integration_tests/api/s3/test_s3_encryption.js
  • src/test/integration_tests/internal/test_dedup.js
  • src/test/unit_tests/api/s3/test_ns_list_objects.js
  • src/test/external_tests/ceph_s3_tests/run_ceph_test_on_test_container.sh
  • src/test/external_tests/ceph_s3_tests/test_ceph_s3_constants.js
  • src/test/unit_tests/nc/configuration/test_config_fs.test.js
  • src/test/unit_tests/api/s3/test_s3select.js
  • src/test/integration_tests/internal/test_map_deleter.js
  • src/test/unit_tests/nc/configuration/test_config_fs_backward_compatibility.test.js
  • src/test/integration_tests/api/sts/test_sts.js
  • src/test/external_tests/ceph_s3_tests/test_ceph_nsfs_s3_config_and_run_s3_tests.sh
  • src/test/integration_tests/nc/cli/test_nc_cli.js
  • src/test/integration_tests/internal/test_tiering_upload.js
  • src/test/integration_tests/nsfs/test_nsfs_integration.js
  • src/test/integration_tests/nc/cli/test_nc_bucket_cli.test.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys.test.js
  • src/test/unit_tests/internal/test_mapper.js
  • src/test/integration_tests/nc/test_nc_with_a_couple_of_forks.js
  • src/test/integration_tests/db/test_nodes_store.js
  • src/test/unit_tests/db/test_schema_keywords.js
  • src/test/integration_tests/api/s3/test_s3_list_objects.js
  • src/test/integration_tests/api/iam/test_nc_iam_basic_integration.js
  • src/test/integration_tests/internal/test_system_servers.js
  • src/test/integration_tests/internal/test_encryption.js
  • src/test/integration_tests/api/s3/test_bucket_replication.js
  • src/test/integration_tests/internal/test_map_reader.js
  • src/test/unit_tests/nc/configuration/test_nc_nsfs_new_buckets_path_validation.test.js
  • src/test/unit_tests/native/test_nb_native_fs.js
  • src/test/integration_tests/nc/cli/test_nc_account_cli.test.js
  • src/test/external_tests/test_go_sdkv2_script.js
  • src/test/integration_tests/internal/test_agent_blocks_reclaimer.js
  • src/test/integration_tests/db/test_system_store.js
  • src/test/integration_tests/internal/test_object_io.js
  • src/test/integration_tests/nc/cli/test_nc_connection_cli.test.js
  • src/test/integration_tests/nc/lifecycle/test_nc_lifecycle_expiration.js
  • src/test/integration_tests/internal/test_map_builder.js
  • src/test/integration_tests/nc/cli/test_nc_anonymous_cli.test.js
  • src/test/integration_tests/api/s3/test_notifications.js
  • src/test/unit_tests/nc/configuration/test_nc_master_keys_exec.test.js
  • src/test/integration_tests/nc/tools/test_nc_online_upgrade_cli_integrations.js
  • src/deploy/NVA_build/Tests.Dockerfile
  • src/test/integration_tests/db/test_md_aggregator_unit.js
  • src/test/integration_tests/internal/test_map_client.js
  • src/test/integration_tests/nsfs/test_bucketspace_versioning.js
  • src/test/unit_tests/internal/test_mirror_writer.js
  • src/test/system_tests/test_utils.js
  • src/test/integration_tests/internal/test_upgrade_scripts.js
  • src/test/integration_tests/api/s3/test_nsfs_versioning_gpfs.js
  • Makefile
🧰 Additional context used
🧠 Learnings (2)
docs/NooBaaNonContainerized/CI&Tests.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 LanguageTool
docs/NooBaaNonContainerized/CI&Tests.md

[grammar] ~79-~79: Use proper spacing conventions.
Context: ...mocha src/test/utils/index/nc_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~81-~81: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo NC_CORETEST=tr...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~82-~82: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js. * Run NC jest tests- * Command:s...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[grammar] ~165-~165: Use proper spacing conventions.
Context: ...cha src/test/utils/index/sudo_index.js`. * Run a single mocha test locally - ...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)


[typographical] ~167-~167: To join two clauses or set off examples, consider using an em dash.
Context: ... * Run a single mocha test locally - Command: `sudo node node_modules/mocha/bin/moch...

(QB_NEW_EN_DASH_RULE_EM)


[grammar] ~168-~168: Use proper spacing conventions.
Context: ...ha src/test/{test_type}/{test_name}.js`. #### NSFS Tests Files List With NamespaceFS n...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

docs/dev_guide/ceph_s3_tests/ceph_s3_tests_guide.md

[grammar] ~161-~161: Use articles correctly.
Context: ...ide The Tester Pod) To run a test, from noobaa working directory: ```bash S3TEST_CONF=...

(QB_NEW_EN_OTHER_ERROR_IDS_000004)


[grammar] ~161-~161: Use proper spacing conventions.
Context: ...n a test, from noobaa working directory: bash S3TEST_CONF=${PWD}/src/test/external_tests/ceph_s3_tests/test_ceph_s3_config.conf tox -c src/test/external_tests/ceph_s3_tests/s3-tests/tox.ini ${PWD}/src/test/external_tests/ceph_s3_tests/s3-tests/<test_name> This should run the test on the noobaa d...

(QB_NEW_EN_OTHER_ERROR_IDS_000007)

🪛 markdownlint-cli2 (0.17.2)
docs/NooBaaNonContainerized/CI&Tests.md

81-81: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


167-167: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


167-167: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

⏰ 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). (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests

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.

2 participants