Skip to main content

Test Suite Overview

MetricValue
Total test cases62
Cypress (end-to-end) tests23
JUnit (server-side) tests39
Edge case tests9
Features covered11
Test Distribution:

  JUnit (server) ██████████████████████████████████████████ 39 (63%)
  Cypress (E2E)  █████████████████████████                  23 (37%)

Feature Coverage

The following table shows which features have automated test coverage and how many edge cases are explicitly tested.
FeatureTestsEdge CasesCoverage Level
Risk management385High
Enum fields134High
Columns114Medium
General operations60Medium
Filtering43Medium
Export (Excel/PDF)40Low
Undo/redo40Low
Persistence (save)30Low
Configuration20Low
PDF export20Low
Data loading10Minimal
“High” means the feature has both happy-path and edge-case tests. “Low” means only basic functionality is verified. Features not listed (e.g., reviews, formulas, cross-project) have no dedicated automated tests.

Edge Cases Tested

Edge case tests validate behavior under unusual or boundary conditions. These are the 9 documented edge cases:

Boundary Conditions

TestSuiteWhat It Validates
testMaximalizeRisksheetTest (JUnit)Grid behavior at maximum capacity

Duplicate/Conflict Handling

TestSuiteWhat It Validates
testTaskDuplicateRisksheetTest (JUnit)Duplicate task link prevention

Empty/Missing Input

TestSuiteWhat It Validates
testPasteNonExistingFuncItemRisksheetTest (JUnit)Paste of non-existent function item
testEmptyFmMergeCauseRisksheetTest (JUnit)Cell merging with empty failure mode

Invalid Input

TestSuiteWhat It Validates
testEnterInvalidFuncItemRisksheetTest (JUnit)Entry of invalid function item reference
Dependent enum filter (continent)Cypress E2EInvalid options filtered after parent selection
Dependent enum filter (country)Cypress E2ECascading filter on country change
Dependent enum filter (state)Cypress E2EFinal-level cascading filter
Clear invalid values on reassignmentCypress E2EAll child values cleared on parent change

Test Suites Detail

RisksheetTest (JUnit) — 35 tests

The primary server-side test suite covering core risk management operations:
  • CRUD operations: Create, read, update, delete risk items and tasks
  • Cell merging: Level 1 and Level 2 merge behavior after add/remove
  • Formulas: RPN calculation verification
  • Undo/redo: Add, remove, and counter operations
  • Save/persist: Data round-trip through Polarion API
  • UI operations: Search, context menu, checkbox, enum, date, time, percent fields
  • Help: Help page accessibility

Dependent Enumeration Tests (Cypress) — 12 tests

Comprehensive E2E tests for dependent (cascading) enum fields:
  • Single-select enums (7 tests): Continent > Country > State cascading with validation
  • Multi-select enums (5 tests): Shipping > Payment > Currency cascading

Export Tests (Cypress) — 4 tests

  • Excel export before and after changes
  • PDF export before and after changes

Other Suites

SuiteTestsFocus
ComparisonTest3Baseline comparison UI
RevisionTest1Historical revision loading
Risk creation flow2E2E risk creation from toolbar and context menu
Resolved config properties2Configuration property resolution
Mitigation task type2Task type display name
Compare filter1Filter button visibility in comparison mode

Untested Areas

The following features lack dedicated automated tests:
FeatureRisk LevelNotes
Review workflowsMediumComment, approval, and work item-based reviews
Formula evaluationMediumComplex formulas with multiple references
Cross-project linkingHighMulti-project task resolution
Custom renderersLowJavaScript-based cell rendering
Cell decoratorsLowConditional CSS application
Multi-level hierarchy (3+ levels)MediumDeep nesting behavior
Baseline freezingMediumDownstream items at revision
Configuration inheritanceMediumTemplate-to-document fallback
Permissions enforcementHighRole-based field restrictions
Large document performanceHigh500+ work items
When adding new features or fixing bugs, consider adding test cases to the relevant suite. Cypress tests live in com.nextedy.risksheet.tests/cypress/e2e/ and JUnit tests in com.nextedy.risksheet.tests/src/test/java/.

Assertion Patterns

The test suites use these assertion styles:
PatternUsage CountFramework
.should()21Cypress
assertEquals()19JUnit
assertTrue()13JUnit
expect()4Cypress
assertNotNull()1JUnit