Add clear function to Enumerable{Set,Map} (#5486)

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
This commit is contained in:
Arr00
2025-02-10 12:02:43 -05:00
committed by GitHub
parent 441dc141ac
commit 3658269505
10 changed files with 326 additions and 0 deletions

View File

@ -117,6 +117,49 @@ function shouldBehaveLikeMap() {
});
});
describe('clear', function () {
it('clears a single entry', async function () {
await this.methods.set(this.keyA, this.valueA);
await this.methods.clear();
expect(await this.methods.contains(this.keyA)).to.be.false;
await expectMembersMatch(this.methods, [], []);
});
it('clears multiple entries', async function () {
await this.methods.set(this.keyA, this.valueA);
await this.methods.set(this.keyB, this.valueB);
await this.methods.set(this.keyC, this.valueC);
await this.methods.clear();
expect(await this.methods.contains(this.keyA)).to.be.false;
expect(await this.methods.contains(this.keyB)).to.be.false;
expect(await this.methods.contains(this.keyC)).to.be.false;
await expectMembersMatch(this.methods, [], []);
});
it('does not revert on empty map', async function () {
await this.methods.clear();
});
it('clear then add entry', async function () {
await this.methods.set(this.keyA, this.valueA);
await this.methods.set(this.keyB, this.valueB);
await this.methods.set(this.keyC, this.valueC);
await this.methods.clear();
await this.methods.set(this.keyA, this.valueA);
expect(await this.methods.contains(this.keyA)).to.be.true;
expect(await this.methods.contains(this.keyB)).to.be.false;
expect(await this.methods.contains(this.keyC)).to.be.false;
await expectMembersMatch(this.methods, [this.keyA], [this.valueA]);
});
});
describe('read', function () {
beforeEach(async function () {
await this.methods.set(this.keyA, this.valueA);