+func TestTreeMissingNodeHasNoErrorAfterWrapping(t *testing.T) {
+ tree, err := openTree(t.Context(), t.TempDir(), 0, newTestClock().Now)
+ require.NoError(t, err)
+
+ t.Cleanup(func() {
+ require.NoError(t, tree.Close())
+ })
+
+ _, built, err := tree.Node(0, 0)
+ require.NoError(t, err)
+ require.False(t, built)
+}
+
+func TestTreeReadFailureKeepsItsCause(t *testing.T) {
+ tree, err := openTree(t.Context(), t.TempDir(), 1, newTestClock().Now)
+ require.NoError(t, err)
+ t.Cleanup(func() {
+ require.NoError(t, tree.Close())
+ })
+
+ require.NoError(t, tree.Add(treeTestNode(0, 0, "user: a")))
+ require.NoError(t, tree.levels[0].Close())
+
+ _, built, err := tree.Node(0, 0)
+ delete(tree.levels, 0)
+ require.ErrorIs(t, err, os.ErrClosed)
+ require.False(t, built)
+ require.ErrorContains(t, err, "find node position")
+}
+