Skip to content

[0.2.0 lifecycle] Add model-based revision, save, cancellation, recovery, and rollback tests #268

Description

@mberrys

Problem
Unit tests cover individual components, but the expensive regressions happen across sequences: edit while preflight runs, cancel during save, crash after an output rename, recover then rollback, or reuse a stale result after revision change. Example-only tests cannot cover the state-space reliably.
State model

enum class ModelCommand
{
    Open,
    Edit,
    StartPreflight,
    CancelJob,
    SaveIncremental,
    SaveAsNewArtifact,
    Crash,
    Recover,
    Rollback
};

struct ModelState
{
    QByteArray sourceDigest;
    quint64 revision = 0;
    bool jobRunning = false;
    bool candidateApproved = false;
    QVector<QByteArray> provenanceHashes;
};

Generate deterministic command sequences and assert invariants after every transition:

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions