test(watcher): a re-synced unchanged note is not extracted twice; a changed one is (#205 S6)
Mutation-checked against the source-hash drift check. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -161,3 +161,33 @@ func TestProcessDir_AProposalReasonCannotForgeFrontmatterKeys(t *testing.T) {
|
|||||||
assert.NotContains(t, string(parked), "\norigin: trusted", "no injected key at line start")
|
assert.NotContains(t, string(parked), "\norigin: trusted", "no injected key at line start")
|
||||||
assert.NotContains(t, string(parked), "\nwing: homelab")
|
assert.NotContains(t, string(parked), "\nwing: homelab")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Syncthing can bring a removed note back (an offline peer, a restored backup).
|
||||||
|
// The source-hash drift check must keep that from costing a second extraction.
|
||||||
|
func TestProcessDir_ANoteThatReappearsUnchangedIsNotExtractedAgain(t *testing.T) {
|
||||||
|
var llmCalls atomic.Int32
|
||||||
|
cfg, brainDir := wingTestCfg(t, wingResolver(&stubClassifier{}, stubScorer{}), &llmCalls)
|
||||||
|
|
||||||
|
put(t, brainDir, "radar/talk.md", "The same talk, byte for byte.")
|
||||||
|
require.Empty(t, processDir(context.Background(), cfg, "2026-10-20"))
|
||||||
|
require.Equal(t, int32(1), llmCalls.Load(), "positive control: the first drop is extracted")
|
||||||
|
require.False(t, has(brainDir, "raw/radar/talk.md"))
|
||||||
|
|
||||||
|
put(t, brainDir, "radar/talk.md", "The same talk, byte for byte.") // the peer sends it back
|
||||||
|
require.Empty(t, processDir(context.Background(), cfg, "2026-10-21"))
|
||||||
|
|
||||||
|
assert.Equal(t, int32(1), llmCalls.Load(), "an unchanged source is not extracted twice")
|
||||||
|
assert.False(t, has(brainDir, "raw/radar/talk.md"), "and inbox zero still holds")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestProcessDir_ANoteThatReappearsChangedIsExtractedAgain(t *testing.T) {
|
||||||
|
var llmCalls atomic.Int32
|
||||||
|
cfg, brainDir := wingTestCfg(t, wingResolver(&stubClassifier{}, stubScorer{}), &llmCalls)
|
||||||
|
|
||||||
|
put(t, brainDir, "radar/talk.md", "Version one.")
|
||||||
|
require.Empty(t, processDir(context.Background(), cfg, "2026-10-20"))
|
||||||
|
put(t, brainDir, "radar/talk.md", "Version two, edited.")
|
||||||
|
require.Empty(t, processDir(context.Background(), cfg, "2026-10-21"))
|
||||||
|
|
||||||
|
assert.Equal(t, int32(2), llmCalls.Load(), "a real edit must still be picked up")
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user