Expand description
Testing harness for Presentar applications.
Zero external dependencies. Pure Rust + WASM only.
§Proc Macros
Use #[presentar_test] for widget and integration tests:
ⓘ
use presentar_test::presentar_test;
#[presentar_test]
fn test_button() {
let harness = Harness::new(Button::new("Click"));
harness.assert_exists("Button");
}
#[presentar_test(timeout = 5000, fixture = "app.tar")]
fn test_with_fixture() {
// Fixture is loaded automatically
}Re-exports§
pub use bdd::describe;pub use bdd::describe_and_assert;pub use bdd::expect;pub use bdd::Expectation;pub use bdd::TestContext;pub use build::BuildInfo;pub use build::BuildMode;pub use build::BundleAnalysis;pub use build::BundleAnalyzer;pub use build::BundleError;pub use build::SizeRecord;pub use build::SizeTracker;pub use build::WasmSection;pub use fixture::Fixture;pub use fixture::FixtureBuilder;pub use fixture::FixtureContext;pub use fixture::FixtureError;pub use fixture::FixtureManifest;pub use fixture::TestData;pub use grade::AccessibilityGates;pub use grade::AppQualityScore;pub use grade::Criterion;pub use grade::DataGates;pub use grade::DocumentationGates;pub use grade::EvaluationBuilder;pub use grade::GateCheckResult;pub use grade::GateViolation;pub use grade::Grade;pub use grade::PerformanceGates;pub use grade::QualityGates;pub use grade::QualityScoreBuilder;pub use grade::ReportCard;pub use grade::ScoreBreakdown;pub use grade::ViolationSeverity;pub use tui::expect_frame;pub use tui::AsyncUpdateAssertion;pub use tui::BenchmarkHarness;pub use tui::BenchmarkResult;pub use tui::DiffEntry;pub use tui::FrameAssertion;pub use tui::PerformanceTargets;pub use tui::RenderMetrics;pub use tui::SnapshotDiff;pub use tui::SnapshotError;pub use tui::TuiCell;pub use tui::TuiSnapshot;pub use tui::TuiTestBackend;
Modules§
- bdd
- BDD-style testing helpers for Presentar.
- build
- Build validation module for WASM bundle size and quality checks.
- fixture
- Fixture loading system for Presentar tests.
- grade
- Grade scoring system for quality evaluation.
- tui
- TUI Testing Framework (SPEC-024 Section 12 & 13)
Macros§
- assert_
snapshot - Assert that a widget matches a snapshot.
- computeblock
- Macro for defining a ComputeBlock with mandatory test coverage.
- describe_
suite - Describe a test suite with before/after hooks.
- fixture
- Define a test fixture with setup/teardown.
Structs§
- A11y
Checker - Accessibility checker.
- A11y
Config - Configuration for accessibility checks.
- A11y
Report - Accessibility report.
- A11y
Violation - A single accessibility violation.
- Aria
Attributes - ARIA attributes for a widget.
- Comparison
Result - Result of a snapshot comparison.
- Form
A11y Checker - Form accessibility checker for validating form-specific WCAG requirements.
- Form
A11y Report - Form accessibility report.
- Form
Accessibility - Form accessibility data for validation.
- Form
Field A11y - Form field accessibility descriptor.
- Form
Field Group - Form field group (fieldset).
- Form
Violation - Form accessibility violation.
- Harness
- Test harness for interacting with Presentar widgets.
- Image
- Image data for snapshot comparison.
- Selector
Parser - Selector parser.
- Snapshot
- Snapshot comparison utilities.
Enums§
- Aria
Checked - ARIA checked state.
- Aria
Live - ARIA live region politeness.
- Autocomplete
Value - Autocomplete attribute values (WCAG 1.3.5).
- Form
A11y Rule - Form accessibility violation rule.
- Impact
- Impact level of an accessibility violation.
- Input
Type - Input type for form fields.
- Selector
- Parsed selector.
Constants§
- MIN_
FOCUS_ INDICATOR_ AREA - Minimum focus indicator area (WCAG 2.4.11)
- MIN_
TOUCH_ TARGET_ SIZE - Minimum touch target size in pixels (WCAG 2.5.5)
Functions§
- aria_
from_ widget - Generate ARIA attributes from a widget.
Attribute Macros§
- interface_
test - Marks a test as defining an interface.
- presentar_
test - Test attribute for Presentar widget and integration tests.
- requires_
interface - Requires an interface test to exist for this implementation.