Skip to content

Commit f47d3a9

Browse files
Add try..finally blocks to queryable tests to ensure created entries are deleted even after test fails
1 parent 629af1d commit f47d3a9

File tree

2 files changed

+43
-31
lines changed

2 files changed

+43
-31
lines changed

test/db/queries/CompositeCrudQueryable.ts

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ export const testCreate = <T, TInit, TMut, PK1, PK2>(
1414
describe("create()", () => {
1515
it("creates basic queryable", async () => {
1616
const createdItem = await Queryable.create(testInitializer);
17-
expect(await Queryable.read(getId1(createdItem), getId2(createdItem))).to.deep.equal(createdItem);
18-
expect(await Queryable.readAll()).to.deep.contain(createdItem);
19-
20-
// cleanup
21-
await Queryable.delete(getId1(createdItem), getId2(createdItem));
17+
try {
18+
expect(await Queryable.read(getId1(createdItem), getId2(createdItem))).to.deep.equal(createdItem);
19+
expect(await Queryable.readAll()).to.deep.contain(createdItem);
20+
} finally {
21+
// cleanup
22+
await Queryable.delete(getId1(createdItem), getId2(createdItem));
23+
}
2224
});
2325
});
2426
};
@@ -66,23 +68,27 @@ export const testUpdate = <T, TInit, TMut, PK1, PK2>(
6668
describe("update()", () => {
6769
it("updates existing queryable", async () => {
6870
const createdItem = await Queryable.create(testInitializer);
69-
const mutatedItem = {...createdItem, ...testMutator};
70-
expect(await Queryable.update(getId1(createdItem), getId2(createdItem), testMutator))
71-
.to.deep.equal(mutatedItem);
72-
expect(await Queryable.read(getId1(createdItem), getId2(createdItem))).to.deep.equal(mutatedItem);
73-
74-
// cleanup
75-
await Queryable.delete(getId1(createdItem), getId2(createdItem));
71+
try {
72+
const mutatedItem = {...createdItem, ...testMutator};
73+
expect(await Queryable.update(getId1(createdItem), getId2(createdItem), testMutator))
74+
.to.deep.equal(mutatedItem);
75+
expect(await Queryable.read(getId1(createdItem), getId2(createdItem))).to.deep.equal(mutatedItem);
76+
} finally {
77+
// cleanup
78+
await Queryable.delete(getId1(createdItem), getId2(createdItem));
79+
}
7680
});
7781
it("returns null when updating nonexistent queryable", async () => {
7882
expect(await Queryable.update(nonexistentId1, nonexistentId2, testMutator)).to.be.null;
7983
});
8084
it("returns null if given empty mutator", async () => {
8185
const createdItem = await Queryable.create(testInitializer);
82-
expect(await Queryable.update(getId1(createdItem), getId2(createdItem), {})).to.be.null;
83-
84-
// cleanup
85-
await Queryable.delete(getId1(createdItem), getId2(createdItem));
86+
try {
87+
expect(await Queryable.update(getId1(createdItem), getId2(createdItem), {})).to.be.null;
88+
} finally {
89+
// cleanup
90+
await Queryable.delete(getId1(createdItem), getId2(createdItem));
91+
}
8692
});
8793
});
8894
};

test/db/queries/SimpleCrudQueryable.ts

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ export const testCreate = <T, TInit, TMut, PK>(
1313
describe("create()", () => {
1414
it("creates basic queryable", async () => {
1515
const createdItem = await Queryable.create(testInitializer);
16-
expect(await Queryable.read(getId(createdItem))).to.deep.equal(createdItem);
17-
expect(await Queryable.readAll()).to.deep.contain(createdItem);
18-
19-
// cleanup
20-
await Queryable.delete(getId(createdItem));
16+
try {
17+
expect(await Queryable.read(getId(createdItem))).to.deep.equal(createdItem);
18+
expect(await Queryable.readAll()).to.deep.contain(createdItem);
19+
} finally {
20+
// cleanup
21+
await Queryable.delete(getId(createdItem));
22+
}
2123
});
2224
});
2325
};
@@ -66,22 +68,26 @@ export const testUpdate = <T, TInit, TMut, PK>(
6668
describe("update()", () => {
6769
it("updates existing queryable", async () => {
6870
const createdItem = await Queryable.create(testInitializer);
69-
const mutatedItem = {...createdItem, ...testMutator};
70-
expect(await Queryable.update(getId(createdItem), testMutator)).to.deep.equal(mutatedItem);
71-
expect(await Queryable.read(getId(createdItem))).to.deep.equal(mutatedItem);
72-
73-
// cleanup
74-
await Queryable.delete(getId(createdItem));
71+
try {
72+
const mutatedItem = {...createdItem, ...testMutator};
73+
expect(await Queryable.update(getId(createdItem), testMutator)).to.deep.equal(mutatedItem);
74+
expect(await Queryable.read(getId(createdItem))).to.deep.equal(mutatedItem);
75+
} finally {
76+
// cleanup
77+
await Queryable.delete(getId(createdItem));
78+
}
7579
});
7680
it("returns null when updating nonexistent queryable", async () => {
7781
expect(await Queryable.update(nonexistentId, testMutator)).to.be.null;
7882
});
7983
it("returns null if given empty mutator", async () => {
8084
const createdItem = await Queryable.create(testInitializer);
81-
expect(await Queryable.update(getId(createdItem), {})).to.be.null;
82-
83-
// cleanup
84-
await Queryable.delete(getId(createdItem));
85+
try {
86+
expect(await Queryable.update(getId(createdItem), {})).to.be.null;
87+
} finally {
88+
// cleanup
89+
await Queryable.delete(getId(createdItem));
90+
}
8591
});
8692
});
8793
};

0 commit comments

Comments
 (0)