@@ -44,6 +44,17 @@ import {
4444 IndexCreator ,
4545 ListIndexesRequest ,
4646 ListIndexesResponse ,
47+ Query ,
48+ CreateSavedQueryRequest ,
49+ CreateSavedQueryResponse ,
50+ DeleteSavedQueryRequest ,
51+ DeleteSavedQueryResponse ,
52+ GetSavedQueryRequest ,
53+ GetSavedQueryResponse ,
54+ ListSavedQueriesRequest ,
55+ ListSavedQueriesResponse ,
56+ UpdateSavedQueryRequest ,
57+ UpdateSavedQueryResponse ,
4758 RemoveBinaryDataFromDatasetByIDsRequest ,
4859 RemoveBinaryDataFromDatasetByIDsResponse ,
4960 RemoveBoundingBoxFromImageByIDRequest ,
@@ -1229,6 +1240,180 @@ describe('DataClient tests', () => {
12291240 } ) ;
12301241 } ) ;
12311242
1243+ // ADDED TESTS START
1244+ describe ( 'createSavedQuery tests' , ( ) => {
1245+ let capReq : CreateSavedQueryRequest ;
1246+ const mqlQuery = [ { $match : { component_name : 'sensor-1' } } ] ;
1247+ beforeEach ( ( ) => {
1248+ mockTransport = createRouterTransport ( ( { service } ) => {
1249+ service ( DataService , {
1250+ createSavedQuery : ( req ) => {
1251+ capReq = req ;
1252+ return new CreateSavedQueryResponse ( {
1253+ id : 'queryId' ,
1254+ } ) ;
1255+ } ,
1256+ } ) ;
1257+ } ) ;
1258+ } ) ;
1259+ it ( 'creates a saved query' , async ( ) => {
1260+ const organizationId = 'orgId' ;
1261+ const name = 'my-query' ;
1262+ const expectedRequest = new CreateSavedQueryRequest ( {
1263+ organizationId,
1264+ name,
1265+ mqlBinary : mqlQuery . map ( ( value ) => BSON . serialize ( value ) ) ,
1266+ } ) ;
1267+ const result = await subject ( ) . createSavedQuery (
1268+ organizationId ,
1269+ name ,
1270+ mqlQuery
1271+ ) ;
1272+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1273+ expect ( result ) . toBe ( 'queryId' ) ;
1274+ } ) ;
1275+ } ) ;
1276+
1277+ describe ( 'updateSavedQuery tests' , ( ) => {
1278+ let capReq : UpdateSavedQueryRequest ;
1279+ const mqlQuery = [ { $match : { component_name : 'sensor-2' } } ] ;
1280+ beforeEach ( ( ) => {
1281+ mockTransport = createRouterTransport ( ( { service } ) => {
1282+ service ( DataService , {
1283+ updateSavedQuery : ( req ) => {
1284+ capReq = req ;
1285+ return new UpdateSavedQueryResponse ( ) ;
1286+ } ,
1287+ } ) ;
1288+ } ) ;
1289+ } ) ;
1290+ it ( 'updates a saved query' , async ( ) => {
1291+ const id = 'queryId' ;
1292+ const name = 'my-updated-query' ;
1293+ const expectedRequest = new UpdateSavedQueryRequest ( {
1294+ id,
1295+ name,
1296+ mqlBinary : mqlQuery . map ( ( value ) => BSON . serialize ( value ) ) ,
1297+ } ) ;
1298+ await subject ( ) . updateSavedQuery ( id , name , mqlQuery ) ;
1299+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1300+ } ) ;
1301+ } ) ;
1302+
1303+ describe ( 'getSavedQuery tests' , ( ) => {
1304+ let capReq : GetSavedQueryRequest ;
1305+ const savedQuery = new Query ( {
1306+ id : 'queryId' ,
1307+ organizationId : 'orgId' ,
1308+ name : 'my-query' ,
1309+ mqlBinary : [ ] ,
1310+ } ) ;
1311+ beforeEach ( ( ) => {
1312+ mockTransport = createRouterTransport ( ( { service } ) => {
1313+ service ( DataService , {
1314+ getSavedQuery : ( req ) => {
1315+ capReq = req ;
1316+ return new GetSavedQueryResponse ( {
1317+ savedQuery,
1318+ } ) ;
1319+ } ,
1320+ } ) ;
1321+ } ) ;
1322+ } ) ;
1323+ it ( 'gets a saved query' , async ( ) => {
1324+ const id = 'queryId' ;
1325+ const expectedRequest = new GetSavedQueryRequest ( {
1326+ id,
1327+ } ) ;
1328+ const result = await subject ( ) . getSavedQuery ( id ) ;
1329+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1330+ expect ( result ) . toStrictEqual ( savedQuery ) ;
1331+ } ) ;
1332+ it ( 'returns null when saved query does not exist' , async ( ) => {
1333+ mockTransport = createRouterTransport ( ( { service } ) => {
1334+ service ( DataService , {
1335+ getSavedQuery : ( ) => {
1336+ return new GetSavedQueryResponse ( { } ) ;
1337+ } ,
1338+ } ) ;
1339+ } ) ;
1340+ const result = await subject ( ) . getSavedQuery ( 'nonExistentId' ) ;
1341+ expect ( result ) . toBeNull ( ) ;
1342+ } ) ;
1343+ } ) ;
1344+
1345+ describe ( 'deleteSavedQuery tests' , ( ) => {
1346+ let capReq : DeleteSavedQueryRequest ;
1347+ beforeEach ( ( ) => {
1348+ mockTransport = createRouterTransport ( ( { service } ) => {
1349+ service ( DataService , {
1350+ deleteSavedQuery : ( req ) => {
1351+ capReq = req ;
1352+ return new DeleteSavedQueryResponse ( ) ;
1353+ } ,
1354+ } ) ;
1355+ } ) ;
1356+ } ) ;
1357+ it ( 'deletes a saved query' , async ( ) => {
1358+ const id = 'queryId' ;
1359+ const expectedRequest = new DeleteSavedQueryRequest ( {
1360+ id,
1361+ } ) ;
1362+ await subject ( ) . deleteSavedQuery ( id ) ;
1363+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1364+ } ) ;
1365+ } ) ;
1366+
1367+ describe ( 'listSavedQueries tests' , ( ) => {
1368+ let capReq : ListSavedQueriesRequest ;
1369+ const query1 = new Query ( {
1370+ id : 'query1' ,
1371+ organizationId : 'orgId' ,
1372+ name : 'query1' ,
1373+ mqlBinary : [ ] ,
1374+ } ) ;
1375+ const query2 = new Query ( {
1376+ id : 'query2' ,
1377+ organizationId : 'orgId' ,
1378+ name : 'query2' ,
1379+ mqlBinary : [ ] ,
1380+ } ) ;
1381+ const queries = [ query1 , query2 ] ;
1382+ beforeEach ( ( ) => {
1383+ mockTransport = createRouterTransport ( ( { service } ) => {
1384+ service ( DataService , {
1385+ listSavedQueries : ( req ) => {
1386+ capReq = req ;
1387+ return new ListSavedQueriesResponse ( {
1388+ queries,
1389+ } ) ;
1390+ } ,
1391+ } ) ;
1392+ } ) ;
1393+ } ) ;
1394+ it ( 'lists saved queries' , async ( ) => {
1395+ const organizationId = 'orgId' ;
1396+ const expectedRequest = new ListSavedQueriesRequest ( {
1397+ organizationId,
1398+ } ) ;
1399+ const result = await subject ( ) . listSavedQueries ( organizationId ) ;
1400+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1401+ expect ( result ) . toStrictEqual ( queries ) ;
1402+ } ) ;
1403+ it ( 'lists saved queries with limit' , async ( ) => {
1404+ const organizationId = 'orgId' ;
1405+ const limit = 10 ;
1406+ const expectedRequest = new ListSavedQueriesRequest ( {
1407+ organizationId,
1408+ limit : BigInt ( limit ) ,
1409+ } ) ;
1410+ const result = await subject ( ) . listSavedQueries ( organizationId , limit ) ;
1411+ expect ( capReq ) . toStrictEqual ( expectedRequest ) ;
1412+ expect ( result ) . toStrictEqual ( queries ) ;
1413+ } ) ;
1414+ } ) ;
1415+ // ADDED TESTS END
1416+
12321417 describe ( 'createFilter tests' , ( ) => {
12331418 it ( 'create empty filter' , ( ) => {
12341419 const testFilter = DataClient . createFilter ( { } ) ;
@@ -2037,4 +2222,4 @@ describe('fileUpload tests', () => {
20372222
20382223 expect ( receivedData ) . toStrictEqual ( data ) ;
20392224 } ) ;
2040- } ) ;
2225+ } ) ;
0 commit comments