@@ -15,7 +15,6 @@ import MongoDBService, {
15
15
import { mdbTestExtension } from '../stubbableMdbExtension' ;
16
16
17
17
const expect = chai . expect ;
18
-
19
18
const INCREASED_TEST_TIMEOUT = 5000 ;
20
19
21
20
suite ( 'MongoDBService Test Suite' , ( ) => {
@@ -992,15 +991,15 @@ suite('MongoDBService Test Suite', () => {
992
991
} ,
993
992
source . token
994
993
) ;
995
- const res = {
994
+ const expectedResult = {
996
995
outputLines : [ ] ,
997
- result : { type : null , content : 2 }
996
+ result : { type : 'number' , content : 2 }
998
997
} ;
999
998
1000
- expect ( result ) . to . deep . equal ( res ) ;
999
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1001
1000
} ) ;
1002
1001
1003
- test ( 'evaluate multiple commands at once' , async function ( ) {
1002
+ test ( 'evaluate multiplies commands at once' , async function ( ) {
1004
1003
this . timeout ( INCREASED_TEST_TIMEOUT ) ;
1005
1004
1006
1005
const source = new CancellationTokenSource ( ) ;
@@ -1010,12 +1009,12 @@ suite('MongoDBService Test Suite', () => {
1010
1009
} ,
1011
1010
source . token
1012
1011
) ;
1013
- const res = {
1012
+ const expectedResult = {
1014
1013
outputLines : [ ] ,
1015
- result : { type : null , content : 3 }
1014
+ result : { type : 'number' , content : 3 }
1016
1015
} ;
1017
1016
1018
- expect ( result ) . to . deep . equal ( res ) ;
1017
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1019
1018
} ) ;
1020
1019
1021
1020
test ( 'create each time a new runtime' , async function ( ) {
@@ -1030,7 +1029,7 @@ suite('MongoDBService Test Suite', () => {
1030
1029
) ;
1031
1030
const firstRes = {
1032
1031
outputLines : [ ] ,
1033
- result : { type : null , content : 2 }
1032
+ result : { type : 'number' , content : 2 }
1034
1033
} ;
1035
1034
1036
1035
expect ( firstEvalResult ) . to . deep . equal ( firstRes ) ;
@@ -1043,12 +1042,87 @@ suite('MongoDBService Test Suite', () => {
1043
1042
) ;
1044
1043
const secondRes = {
1045
1044
outputLines : [ ] ,
1046
- result : { type : null , content : 3 }
1045
+ result : { type : 'number' , content : 3 }
1047
1046
} ;
1048
1047
1049
1048
expect ( secondEvalResult ) . to . deep . equal ( secondRes ) ;
1050
1049
} ) ;
1051
1050
1051
+ test ( 'evaluate returns valid EJSON' , async function ( ) {
1052
+ this . timeout ( INCREASED_TEST_TIMEOUT ) ;
1053
+
1054
+ const source = new CancellationTokenSource ( ) ;
1055
+ const result = await testMongoDBService . executeAll (
1056
+ {
1057
+ codeToEvaluate : `const { ObjectId } = require('bson');
1058
+ const x = { _id: new ObjectId('5fb292760ece2dc9c0362075') };
1059
+ x`
1060
+ } ,
1061
+ source . token
1062
+ ) ;
1063
+ const expectedResult = {
1064
+ outputLines : [ ] ,
1065
+ result : {
1066
+ type : 'object' ,
1067
+ content : {
1068
+ _id : {
1069
+ $oid : '5fb292760ece2dc9c0362075'
1070
+ }
1071
+ }
1072
+ }
1073
+ } ;
1074
+
1075
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1076
+ } ) ;
1077
+
1078
+ test ( 'evaluate returns single line strings' , async function ( ) {
1079
+ this . timeout ( INCREASED_TEST_TIMEOUT ) ;
1080
+
1081
+ const source = new CancellationTokenSource ( ) ;
1082
+ const result = await testMongoDBService . executeAll (
1083
+ {
1084
+ codeToEvaluate : `const x = 'A single line string';
1085
+ x`
1086
+ } ,
1087
+ source . token
1088
+ ) ;
1089
+ const expectedResult = {
1090
+ outputLines : [ ] ,
1091
+ result : {
1092
+ type : 'string' ,
1093
+ content : 'A single line string'
1094
+ }
1095
+ } ;
1096
+
1097
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1098
+ } ) ;
1099
+
1100
+ test ( 'evaluate returns multiline strings' , async function ( ) {
1101
+ this . timeout ( INCREASED_TEST_TIMEOUT ) ;
1102
+
1103
+ const source = new CancellationTokenSource ( ) ;
1104
+ const result = await testMongoDBService . executeAll (
1105
+ {
1106
+ codeToEvaluate : `const x = \`vscode
1107
+ is
1108
+ awesome\`;
1109
+ x`
1110
+ } ,
1111
+ source . token
1112
+ ) ;
1113
+ const expectedResult = {
1114
+ outputLines : [ ] ,
1115
+ result : {
1116
+ type : 'string' ,
1117
+ content : `vscode
1118
+ is
1119
+ awesome`
1120
+ }
1121
+ } ;
1122
+
1123
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1124
+ } ) ;
1125
+
1052
1126
test ( 'includes results from print() and console.log()' , async function ( ) {
1053
1127
this . timeout ( INCREASED_TEST_TIMEOUT ) ;
1054
1128
@@ -1059,17 +1133,17 @@ suite('MongoDBService Test Suite', () => {
1059
1133
} ,
1060
1134
source . token
1061
1135
) ;
1062
- const res = {
1136
+ const expectedResult = {
1063
1137
outputLines : [
1064
1138
{ type : null , content : 'Hello' } ,
1065
1139
{ type : null , content : 1 } ,
1066
1140
{ type : null , content : 2 } ,
1067
1141
{ type : null , content : 3 }
1068
1142
] ,
1069
- result : { type : null , content : 42 }
1143
+ result : { type : 'number' , content : 42 }
1070
1144
} ;
1071
1145
1072
- expect ( result ) . to . deep . equal ( res ) ;
1146
+ expect ( result ) . to . deep . equal ( expectedResult ) ;
1073
1147
} ) ;
1074
1148
} ) ;
1075
1149
} ) ;
0 commit comments