Skip to main content

Crate presentar_test

Crate presentar_test 

Source
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§

A11yChecker
Accessibility checker.
A11yConfig
Configuration for accessibility checks.
A11yReport
Accessibility report.
A11yViolation
A single accessibility violation.
AriaAttributes
ARIA attributes for a widget.
ComparisonResult
Result of a snapshot comparison.
FormA11yChecker
Form accessibility checker for validating form-specific WCAG requirements.
FormA11yReport
Form accessibility report.
FormAccessibility
Form accessibility data for validation.
FormFieldA11y
Form field accessibility descriptor.
FormFieldGroup
Form field group (fieldset).
FormViolation
Form accessibility violation.
Harness
Test harness for interacting with Presentar widgets.
Image
Image data for snapshot comparison.
SelectorParser
Selector parser.
Snapshot
Snapshot comparison utilities.

Enums§

AriaChecked
ARIA checked state.
AriaLive
ARIA live region politeness.
AutocompleteValue
Autocomplete attribute values (WCAG 1.3.5).
FormA11yRule
Form accessibility violation rule.
Impact
Impact level of an accessibility violation.
InputType
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.