Skip to content

[Feature]: Expand DevPath Sentinel Test Coverage for Edge Cases #1916

Description

@jyotish6699

What problem does this solve?

DevPath Sentinel currently has tests covering the main validation scenarios for the Dataset Validator and Starter Code Integrity Validator, but several important edge cases and combined validation scenarios are not fully covered.

As the Sentinel validators evolve, insufficient test coverage could allow regressions in areas such as multiple validation findings, whitespace-only values, empty collections, nested starter code files, supported file extensions, and invalid dataset structures to go unnoticed.

Improving the existing test coverage would make the Sentinel validators more reliable and give contributors greater confidence when modifying the validation logic.

Proposed solution

Expand the automated test coverage for the existing DevPath Sentinel validators while preserving the current implementation and test structure.

The additional test coverage should include:

Dataset Validator

  • Multiple duplicate project IDs
  • Multiple duplicate project titles
  • Whitespace-only required fields
  • Empty required list fields
  • Multiple missing required fields
  • Multiple validation failures occurring together
  • Deterministic ordering of duplicate validation results

Starter Code Integrity Validator

  • Nested starter code files
  • Nested orphan starter code files
  • Multiple empty starter code files
  • Multiple hidden files
  • Multiple unsupported file extensions
  • All configured supported starter code extensions
  • Invalid dataset structures where the JSON root is not a project list

The tests should extend the existing:

  • tests/test_sentinel_dataset_validator.py
  • tests/test_starter_code_validator.py

The existing validator behavior should remain unchanged. This work is focused on strengthening automated test coverage and regression protection.

Alternatives considered

Continue relying on the existing test cases and manual verification.

This would require less test maintenance, but important edge cases and combined validation scenarios would remain uncovered, making future regressions harder to detect.

Which part of the app does this affect?

Testing

Estimated complexity

Large (multiple modules, new route, tests required)

Before submitting

  • I searched existing issues and this has not been requested before.
  • This change would benefit contributors beyond my own use case.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions