test(persistence): remove stale @tdd_issue tags from EntityStore persistence tests
CI / lint (pull_request) Successful in 49s
CI / push-validation (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 36s
CI / build (pull_request) Successful in 49s
CI / quality (pull_request) Successful in 59s
CI / typecheck (pull_request) Successful in 1m9s
CI / security (pull_request) Successful in 1m27s
CI / integration_tests (pull_request) Successful in 4m28s
CI / unit_tests (pull_request) Failing after 5m42s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 4s
CI / lint (pull_request) Successful in 49s
CI / push-validation (pull_request) Successful in 33s
CI / helm (pull_request) Successful in 36s
CI / build (pull_request) Successful in 49s
CI / quality (pull_request) Successful in 59s
CI / typecheck (pull_request) Successful in 1m9s
CI / security (pull_request) Successful in 1m27s
CI / integration_tests (pull_request) Successful in 4m28s
CI / unit_tests (pull_request) Failing after 5m42s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 4s
The _load_from_persistence() and _persist_if_needed() stubs have been replaced with real SQLite persistence implementations, fixing bug #10455. All five scenarios now pass as regular regression tests. Refs: #10455
This commit is contained in:
@@ -1,62 +1,42 @@
|
||||
# TDD issue-capture test for bug #10455 — EntityStore persistence stubs.
|
||||
# Regression tests for EntityStore and MemoryService SQL persistence.
|
||||
#
|
||||
# EntityStore in MemoryService exposes a connection_string parameter that
|
||||
# implies SQL-backed entity persistence. However, both persistence methods
|
||||
# are unimplemented stubs:
|
||||
#
|
||||
# _load_from_persistence() — contains only `pass`, entities never loaded.
|
||||
# _persist_if_needed() — marks dirty=False without writing any data.
|
||||
#
|
||||
# This creates a silent data-loss bug: callers that supply a connection_string
|
||||
# expect entities to survive process restarts, but they do not.
|
||||
#
|
||||
# These scenarios prove the bug exists by simulating separate process
|
||||
# invocations (fresh EntityStore / MemoryService instances backed by the
|
||||
# same SQLite database) and asserting that entities added in one invocation
|
||||
# are visible in the next. They FAIL until the bug is fixed.
|
||||
# The @tdd_expected_fail tag inverts the result so CI passes.
|
||||
# EntityStore in MemoryService now implements real SQL-backed entity
|
||||
# persistence via _load_from_persistence() and _persist_if_needed().
|
||||
# These scenarios verify that entities tracked in one instance survive
|
||||
# in a fresh instance backed by the same SQLite database.
|
||||
#
|
||||
# Originally TDD issue-capture tests for bug #10455 (EntityStore stubs).
|
||||
# See: https://git.cleverthis.com/cleveragents/cleveragents-core/issues/10455
|
||||
|
||||
@tdd_issue @tdd_issue_10455 @mock_only
|
||||
Feature: TDD Issue #10455 — EntityStore entity data lost across process restarts
|
||||
@mock_only
|
||||
Feature: EntityStore and MemoryService SQL persistence
|
||||
As a developer using MemoryService with a connection_string
|
||||
I want entities tracked via track_entity() to survive process restarts
|
||||
So that cross-session entity recall works as documented
|
||||
|
||||
EntityStore._load_from_persistence() is a stub (pass) and
|
||||
_persist_if_needed() marks dirty=False without writing data.
|
||||
A fresh EntityStore instance backed by the same database should
|
||||
contain entities added by a previous instance.
|
||||
|
||||
@tdd_issue @tdd_issue_10455
|
||||
Scenario: Entity tracked in one EntityStore instance is visible in a fresh instance
|
||||
Given I create an EntityStore with a SQLite connection string and session "entity-persist-test"
|
||||
When I track a project entity "my-project" in the first EntityStore instance
|
||||
And I create a fresh EntityStore instance with the same connection string and session
|
||||
Then the fresh EntityStore instance should contain the entity "my-project"
|
||||
|
||||
@tdd_issue @tdd_issue_10455
|
||||
Scenario: Entity tracked via MemoryService survives simulated process restart
|
||||
Given I create a MemoryService with a SQLite connection string and session "memory-persist-test"
|
||||
When I track a plan entity "my-plan" via the MemoryService
|
||||
And I create a fresh MemoryService with the same connection string and session
|
||||
Then the fresh MemoryService should return the entity "my-plan" when queried
|
||||
|
||||
@tdd_issue @tdd_issue_10455
|
||||
Scenario: Persistence failure raises an exception rather than silently succeeding
|
||||
Given I create an EntityStore with an invalid connection string
|
||||
When I attempt to track an entity in the EntityStore with invalid connection
|
||||
Then an exception should be raised rather than silently failing
|
||||
|
||||
@tdd_issue @tdd_issue_10455
|
||||
Scenario: Multiple entities survive a simulated process restart
|
||||
Given I create an EntityStore with a SQLite connection string and session "multi-entity-persist"
|
||||
When I track multiple entities in the first EntityStore instance
|
||||
And I create a fresh EntityStore instance with the same connection string and session
|
||||
Then all tracked entities should be present in the fresh EntityStore instance
|
||||
|
||||
@tdd_issue @tdd_issue_10455
|
||||
Scenario: Entity metadata and mention count survive a simulated process restart
|
||||
Given I create an EntityStore with a SQLite connection string and session "entity-metadata-persist"
|
||||
When I track a project entity "project-delta" with metadata
|
||||
@@ -70,4 +50,4 @@ Feature: TDD Issue #10455 — EntityStore entity data lost across process restar
|
||||
| key | value |
|
||||
| owner | alice |
|
||||
| status | active |
|
||||
And the fresh EntityStore entity "project-delta" should have mention count 2
|
||||
And the fresh EntityStore entity "project-delta" should have mention count 2
|
||||
Reference in New Issue
Block a user