Skip to content

Commit 3b59a12

Browse files
committed
test(NODE-4834): Update tests to be more coherent
1 parent 860d741 commit 3b59a12

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

test/unit/cmap/connection.test.ts

+32-3
Original file line numberDiff line numberDiff line change
@@ -620,15 +620,44 @@ describe('new Connection()', function () {
620620
expect(driverSocket.end).to.have.been.calledOnce;
621621
});
622622

623-
it('does not call stream.end after onClose, onTimeout, or onError', () => {
623+
it('calls stream.end exactly once when onError is called', () => {
624624
messageStream.emit('error');
625625
clock.tick(1);
626626
expect(connection.onError).to.have.been.calledOnce;
627+
connection.destroy({ force: false });
628+
clock.tick(1);
629+
expect(driverSocket.destroy).to.not.have.been.called;
630+
expect(driverSocket.end).to.have.been.calledOnce;
631+
});
632+
633+
it('calls stream.end exactly once when onClose is called', () => {
634+
driverSocket.emit('close');
635+
clock.tick(1);
636+
expect(connection.onClose).to.have.been.calledOnce;
637+
connection.destroy({ force: false });
638+
clock.tick(1);
639+
expect(driverSocket.destroy).to.not.have.been.called;
640+
expect(driverSocket.end).to.have.been.calledOnce;
641+
});
642+
643+
it('calls stream.end exactly once when onTimeout is called', () => {
644+
driverSocket.emit('timeout');
627645
clock.tick(1);
628-
expect(driverSocket.destroy).to.not.have.been.calledOnce;
646+
expect(connection.onTimeout).to.have.been.calledOnce;
647+
connection.destroy({ force: false });
648+
clock.tick(1);
649+
expect(driverSocket.destroy).to.not.have.been.called;
650+
expect(driverSocket.end).to.have.been.calledOnce;
651+
});
652+
653+
it('calls stream.end exactly once when destroy is called multiple times', () => {
654+
connection.destroy({ force: false });
655+
connection.destroy({ force: false });
656+
connection.destroy({ force: false });
629657
connection.destroy({ force: false });
630658
clock.tick(1);
631-
expect(driverSocket.end).to.have.been.called;
659+
expect(driverSocket.destroy).to.not.have.been.called;
660+
expect(driverSocket.end).to.have.been.calledOnce;
632661
});
633662

634663
it('does not call stream.end if options.force == true', () => {

0 commit comments

Comments
 (0)