@@ -5,7 +5,8 @@ import { EventEmitter } from 'events';
55import { MongoshInvalidInputError } from '@mongosh/errors' ;
66import type { MongoshBus } from '@mongosh/types' ;
77import type { Writable } from 'stream' ;
8- import { MongoshLoggingAndTelemetry } from './logging-and-telemetry' ;
8+ import type { MongoshLoggingAndTelemetry } from '.' ;
9+ import { setupLoggingAndTelemetry } from '.' ;
910
1011describe ( 'MongoshLoggingAndTelemetry' , function ( ) {
1112 let logOutput : any [ ] ;
@@ -36,15 +37,15 @@ describe('MongoshLoggingAndTelemetry', function () {
3637 analyticsOutput = [ ] ;
3738 bus = new EventEmitter ( ) ;
3839
39- loggingAndTelemetry = new MongoshLoggingAndTelemetry (
40+ loggingAndTelemetry = setupLoggingAndTelemetry ( {
4041 bus,
4142 analytics,
42- {
43+ userTraits : {
4344 platform : process . platform ,
4445 arch : process . arch ,
4546 } ,
46- '1.0.0'
47- ) ;
47+ mongoshVersion : '1.0.0' ,
48+ } ) ;
4849
4950 logger = new MongoLogWriter ( logId , `/tmp/${ logId } _log` , {
5051 write ( chunk : string , cb : ( ) => void ) {
@@ -62,37 +63,20 @@ describe('MongoshLoggingAndTelemetry', function () {
6263 logger . destroy ( ) ;
6364 } ) ;
6465
65- it ( 'throws when running setup twice' , function ( ) {
66- loggingAndTelemetry . setup ( ) ;
67-
68- expect ( ( ) => loggingAndTelemetry . setup ( ) ) . throws (
69- 'Setup can only be called once.'
70- ) ;
71- } ) ;
72-
73- it ( 'throws when trying to setup writer prematurely' , function ( ) {
74- expect ( ( ) => loggingAndTelemetry . attachLogger ( logger ) ) . throws (
75- 'Run setup() before setting up the log writer.'
76- ) ;
77- } ) ;
78-
7966 it ( 'throws when running attachLogger twice without detaching' , function ( ) {
80- loggingAndTelemetry . setup ( ) ;
8167 loggingAndTelemetry . attachLogger ( logger ) ;
8268 expect ( ( ) => loggingAndTelemetry . attachLogger ( logger ) ) . throws (
8369 'Previously set logger has not been detached. Run detachLogger() before setting.'
8470 ) ;
8571 } ) ;
8672
8773 it ( 'does not throw when attaching and detaching loggers' , function ( ) {
88- loggingAndTelemetry . setup ( ) ;
8974 loggingAndTelemetry . attachLogger ( logger ) ;
9075 loggingAndTelemetry . detachLogger ( ) ;
9176 expect ( ( ) => loggingAndTelemetry . attachLogger ( logger ) ) . does . not . throw ( ) ;
9277 } ) ;
9378
9479 it ( 'tracks new local connection events' , function ( ) {
95- loggingAndTelemetry . setup ( ) ;
9680 loggingAndTelemetry . attachLogger ( logger ) ;
9781
9882 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -147,7 +131,6 @@ describe('MongoshLoggingAndTelemetry', function () {
147131 } ) ;
148132
149133 it ( 'tracks new atlas connection events' , function ( ) {
150- loggingAndTelemetry . setup ( ) ;
151134 loggingAndTelemetry . attachLogger ( logger ) ;
152135
153136 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -206,7 +189,6 @@ describe('MongoshLoggingAndTelemetry', function () {
206189 } ) ;
207190
208191 it ( 'detaching logger leads to no logging but persists analytics' , function ( ) {
209- loggingAndTelemetry . setup ( ) ;
210192 loggingAndTelemetry . attachLogger ( logger ) ;
211193
212194 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -222,7 +204,6 @@ describe('MongoshLoggingAndTelemetry', function () {
222204 } ) ;
223205
224206 it ( 'detaching logger applies to devtools-connect events' , function ( ) {
225- loggingAndTelemetry . setup ( ) ;
226207 loggingAndTelemetry . attachLogger ( logger ) ;
227208
228209 bus . emit ( 'devtools-connect:connect-fail-early' ) ;
@@ -241,11 +222,11 @@ describe('MongoshLoggingAndTelemetry', function () {
241222 loggingAndTelemetry . attachLogger ( logger ) ;
242223
243224 bus . emit ( 'devtools-connect:connect-fail-early' ) ;
244- expect ( logOutput ) . to . have . lengthOf ( 3 ) ;
225+ bus . emit ( 'devtools-connect:connect-fail-early' ) ;
226+ expect ( logOutput ) . to . have . lengthOf ( 4 ) ;
245227 } ) ;
246228
247229 it ( 'detaching logger mid-way leads to no logging but persists analytics' , function ( ) {
248- loggingAndTelemetry . setup ( ) ;
249230 loggingAndTelemetry . attachLogger ( logger ) ;
250231
251232 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -266,7 +247,6 @@ describe('MongoshLoggingAndTelemetry', function () {
266247 } ) ;
267248
268249 it ( 'detaching logger is recoverable' , function ( ) {
269- loggingAndTelemetry . setup ( ) ;
270250 loggingAndTelemetry . attachLogger ( logger ) ;
271251
272252 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -294,7 +274,6 @@ describe('MongoshLoggingAndTelemetry', function () {
294274 } ) ;
295275
296276 it ( 'tracks a sequence of events' , function ( ) {
297- loggingAndTelemetry . setup ( ) ;
298277 loggingAndTelemetry . attachLogger ( logger ) ;
299278
300279 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -753,7 +732,6 @@ describe('MongoshLoggingAndTelemetry', function () {
753732 } ) ;
754733
755734 it ( 'buffers deprecated API calls' , function ( ) {
756- loggingAndTelemetry . setup ( ) ;
757735 loggingAndTelemetry . attachLogger ( logger ) ;
758736
759737 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -929,7 +907,6 @@ describe('MongoshLoggingAndTelemetry', function () {
929907 } ) ;
930908
931909 it ( 'does not track database calls outside of evaluate-{started,finished}' , function ( ) {
932- loggingAndTelemetry . setup ( ) ;
933910 loggingAndTelemetry . attachLogger ( logger ) ;
934911
935912 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
@@ -957,7 +934,6 @@ describe('MongoshLoggingAndTelemetry', function () {
957934 expect ( logOutput ) . to . have . lengthOf ( 0 ) ;
958935 expect ( analyticsOutput ) . to . be . empty ;
959936
960- loggingAndTelemetry . setup ( ) ;
961937 loggingAndTelemetry . attachLogger ( logger ) ;
962938
963939 bus . emit ( 'mongosh:connect' , {
0 commit comments