Skip to content

Commit 1514949

Browse files
committed
delete /api/admin/test but add some TODOs IQSS#11760
Enough functionality has been added in IQSS#11760 that it should be save to delete all of /api/admin/test (TestApi.java) because it was only testing external tools. However, if we incorporate this change into that PR we should do the following: - fix the backend to not return a toolUrl when it shouldn't (see testFileLevelToolWithAuxFileReq) - consider how we aren't exercising findDatasetToolsByType and findFileToolsByType anymore. They are used by JSF. - consider how we don't return the following fields when getting the toolUrl: scope, types, contentType - remove commented code that's just there for review
1 parent 237c7c8 commit 1514949

3 files changed

Lines changed: 128 additions & 242 deletions

File tree

src/main/java/edu/harvard/iq/dataverse/api/TestApi.java

Lines changed: 0 additions & 144 deletions
This file was deleted.

src/test/java/edu/harvard/iq/dataverse/api/ExternalToolsIT.java

Lines changed: 47 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,15 @@ public void testExternalToolsNonAdminEndpoint() {
9696
.body("data.displayName", CoreMatchers.equalTo("Dataset Configurator"));
9797

9898
Long toolId = JsonPath.from(addExternalTool.getBody().asString()).getLong("data.id");
99-
Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString());
99+
// Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString()); // TODO: delete
100+
Response getExternalToolsByDatasetId = UtilIT.getDatasetToolUrl(datasetId.toString(), toolId.toString(), apiToken, null);
100101
getExternalToolsByDatasetId.prettyPrint();
101102
getExternalToolsByDatasetId.then().assertThat()
103+
.statusCode(OK.getStatusCode())
102104
.body("data.displayName", CoreMatchers.equalTo("Dataset Configurator"))
103-
.body("data.scope", CoreMatchers.equalTo("dataset"))
104-
.body("data.types[0]", CoreMatchers.equalTo("configure"))
105-
.body("data.toolUrlWithQueryParams", CoreMatchers.equalTo("https://datasetconfigurator.com?datasetPid=" + datasetPid))
106-
.statusCode(OK.getStatusCode());
105+
// .body("data.scope", CoreMatchers.equalTo("dataset"))
106+
// .body("data.types[0]", CoreMatchers.equalTo("configure"))
107+
.body("data.toolUrl", CoreMatchers.equalTo("https://datasetconfigurator.com?datasetPid=" + datasetPid));
107108

108109
Response getExternalTools = UtilIT.getExternalTools(apiToken);
109110
getExternalTools.prettyPrint();
@@ -119,7 +120,9 @@ public void testExternalToolsNonAdminEndpoint() {
119120
getExternalTools = UtilIT.getExternalTools(apiToken);
120121
getExternalTools.then().assertThat()
121122
.statusCode(OK.getStatusCode());
122-
getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString());
123+
124+
// getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString()); // TODO: delete
125+
getExternalToolsByDatasetId = UtilIT.getDatasetToolUrl(datasetId.toString(), toolId.toString(), apiToken, null);
123126
getExternalToolsByDatasetId.prettyPrint();
124127
getExternalToolsByDatasetId.then().assertThat()
125128
.statusCode(OK.getStatusCode());
@@ -216,30 +219,31 @@ public void testFileLevelTool1() {
216219
.body("data.scope", CoreMatchers.equalTo("file"))
217220
.statusCode(OK.getStatusCode());
218221

219-
Response getExternalToolsForFileInvalidType = UtilIT.getExternalToolsForFile(tabularFileId.toString(), "invalidType", apiToken);
220-
getExternalToolsForFileInvalidType.prettyPrint();
221-
getExternalToolsForFileInvalidType.then().assertThat()
222-
.statusCode(BAD_REQUEST.getStatusCode())
223-
.body("message", CoreMatchers.equalTo("Type must be one of these values: [explore, configure, preview, query]."));
222+
// TODO: delete this test
223+
// Response getExternalToolsForFileInvalidType = UtilIT.getExternalToolsForFile(tabularFileId.toString(), "invalidType", apiToken);
224+
// getExternalToolsForFileInvalidType.prettyPrint();
225+
// getExternalToolsForFileInvalidType.then().assertThat()
226+
// .statusCode(BAD_REQUEST.getStatusCode())
227+
// .body("message", CoreMatchers.equalTo("Type must be one of these values: [explore, configure, preview, query]."));
224228

225229
// Getting tool by tool Id to avoid issue where there are existing tools
226230
String toolIdString = toolId.toString();
227-
Response getExternalToolsForTabularFiles = UtilIT.getExternalToolForFileById(tabularFileId.toString(), "explore", apiToken, toolIdString);
231+
// Response getExternalToolsForTabularFiles = UtilIT.getExternalToolForFileById(tabularFileId.toString(), "explore", apiToken, toolIdString); // TODO: delete
232+
Response getExternalToolsForTabularFiles = UtilIT.getFileToolUrl(tabularFileId.toString(), toolIdString, apiToken, null);
228233
getExternalToolsForTabularFiles.prettyPrint();
229-
230234
getExternalToolsForTabularFiles.then().assertThat()
231235
.statusCode(OK.getStatusCode())
232236
.body("data.displayName", CoreMatchers.equalTo("AwesomeTool"))
233-
.body("data.scope", CoreMatchers.equalTo("file"))
234-
.body("data.contentType", CoreMatchers.equalTo("text/tab-separated-values"))
235-
.body("data.toolUrlWithQueryParams", CoreMatchers.equalTo("http://awesometool.com?fileid=" + tabularFileId + "&key=" + apiToken));
237+
// .body("data.scope", CoreMatchers.equalTo("file"))
238+
// .body("data.contentType", CoreMatchers.equalTo("text/tab-separated-values"))
239+
.body("data.toolUrl", CoreMatchers.equalTo("http://awesometool.com?fileid=" + tabularFileId + "&key=" + apiToken));
236240

237-
Response getExternalToolsForJuptyerNotebooks = UtilIT.getExternalToolsForFile(jupyterNotebookFileId.toString(), "explore", apiToken);
241+
Response getExternalToolsForJuptyerNotebooks = UtilIT.getFileToolUrl(jupyterNotebookFileId.toString(), toolId.toString(), apiToken, null);
238242
getExternalToolsForJuptyerNotebooks.prettyPrint();
239243
getExternalToolsForJuptyerNotebooks.then().assertThat()
240-
.statusCode(OK.getStatusCode())
244+
.statusCode(BAD_REQUEST.getStatusCode())
241245
// No tools for this file type.
242-
.body("data", Matchers.hasSize(0));
246+
.body("message", CoreMatchers.equalTo("External tool content type (text/tab-separated-values) does not match file content type (application/x-ipynb+json)."));
243247

244248
//Delete the tool added by this test...
245249
Response deleteExternalTool = UtilIT.deleteExternalTool(toolId);
@@ -306,18 +310,20 @@ public void testDatasetLevelTool1() {
306310

307311
Long toolId = JsonPath.from(addExternalTool.getBody().asString()).getLong("data.id");
308312

309-
Response getExternalToolsByDatasetIdInvalidType = UtilIT.getExternalToolsForDataset(datasetId.toString(), "invalidType", apiToken);
310-
getExternalToolsByDatasetIdInvalidType.prettyPrint();
311-
getExternalToolsByDatasetIdInvalidType.then().assertThat()
312-
.statusCode(BAD_REQUEST.getStatusCode())
313-
.body("message", CoreMatchers.equalTo("Type must be one of these values: [explore, configure, preview, query]."));
314-
315-
Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "explore", apiToken, toolId.toString());
313+
// TODO: delete this test
314+
// Response getExternalToolsByDatasetIdInvalidType = UtilIT.getExternalToolsForDataset(datasetId.toString(), "invalidType", apiToken);
315+
// getExternalToolsByDatasetIdInvalidType.prettyPrint();
316+
// getExternalToolsByDatasetIdInvalidType.then().assertThat()
317+
// .statusCode(BAD_REQUEST.getStatusCode())
318+
// .body("message", CoreMatchers.equalTo("Type must be one of these values: [explore, configure, preview, query]."));
319+
//
320+
// Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "explore", apiToken, toolId.toString());
321+
Response getExternalToolsByDatasetId = UtilIT.getDatasetToolUrl(datasetId.toString(), toolId.toString(), apiToken, null);
316322
getExternalToolsByDatasetId.prettyPrint();
317323
getExternalToolsByDatasetId.then().assertThat()
318324
.body("data.displayName", CoreMatchers.equalTo("DatasetTool1"))
319-
.body("data.scope", CoreMatchers.equalTo("dataset"))
320-
.body("data.toolUrlWithQueryParams", CoreMatchers.equalTo("http://datasettool1.com?datasetPid=" + datasetPid + "&key=" + apiToken))
325+
// .body("data.scope", CoreMatchers.equalTo("dataset"))
326+
.body("data.toolUrl", CoreMatchers.equalTo("http://datasettool1.com?datasetPid=" + datasetPid + "&key=" + apiToken))
321327
.statusCode(OK.getStatusCode());
322328

323329
//Delete the tool added by this test...
@@ -379,13 +385,14 @@ public void testDatasetLevelToolConfigure() {
379385
.body("data.displayName", CoreMatchers.equalTo("Dataset Configurator"));
380386

381387
Long toolId = JsonPath.from(addExternalTool.getBody().asString()).getLong("data.id");
382-
Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString());
388+
// Response getExternalToolsByDatasetId = UtilIT.getExternalToolForDatasetById(datasetId.toString(), "configure", apiToken, toolId.toString()); // TODO: delete
389+
Response getExternalToolsByDatasetId = UtilIT.getDatasetToolUrl(datasetId.toString(), toolId.toString(), apiToken, null);
383390
getExternalToolsByDatasetId.prettyPrint();
384391
getExternalToolsByDatasetId.then().assertThat()
385392
.body("data.displayName", CoreMatchers.equalTo("Dataset Configurator"))
386-
.body("data.scope", CoreMatchers.equalTo("dataset"))
387-
.body("data.types[0]", CoreMatchers.equalTo("configure"))
388-
.body("data.toolUrlWithQueryParams", CoreMatchers.equalTo("https://datasetconfigurator.com?datasetPid=" + datasetPid))
393+
// .body("data.scope", CoreMatchers.equalTo("dataset"))
394+
// .body("data.types[0]", CoreMatchers.equalTo("configure"))
395+
.body("data.toolUrl", CoreMatchers.equalTo("https://datasetconfigurator.com?datasetPid=" + datasetPid))
389396
.statusCode(OK.getStatusCode());
390397

391398
//Delete the tool added by this test...
@@ -709,20 +716,23 @@ public void testFileLevelToolWithAuxFileReq() throws IOException {
709716
.statusCode(OK.getStatusCode());
710717

711718
// No tools for false HDF5 file. Aux file couldn't be extracted. Doesn't meet requirements.
712-
Response getToolsForFalseHdf5 = UtilIT.getExternalToolsForFile(falseHdf5.toString(), "preview", apiToken);
719+
// Response getToolsForFalseHdf5 = UtilIT.getExternalToolsForFile(falseHdf5.toString(), "preview", apiToken); // TODO: delete
720+
Response getToolsForFalseHdf5 = UtilIT.getFileToolUrl(falseHdf5.toString(), toolId.toString(), apiToken, null);
713721
getToolsForFalseHdf5.prettyPrint();
722+
// TODO: update this assertion once the backend is fixed. The backend should not be offering a tool in this case.
714723
getToolsForFalseHdf5.then().assertThat()
715724
.statusCode(OK.getStatusCode())
716725
.body("data", Matchers.hasSize(0));
717726

718727
// The tool shows for a true HDF5 file. The NcML aux file is available. Requirements met.
719-
Response getToolsForTrueHdf5 = UtilIT.getExternalToolForFileById(trueHdf5.toString(), "preview", apiToken, toolId.toString());
728+
// Response getToolsForTrueHdf5 = UtilIT.getExternalToolForFileById(trueHdf5.toString(), "preview", apiToken, toolId.toString()); // TODO: delete
729+
Response getToolsForTrueHdf5 = UtilIT.getFileToolUrl(trueHdf5.toString(), toolId.toString(), apiToken, null);
720730
getToolsForTrueHdf5.prettyPrint();
721731
getToolsForTrueHdf5.then().assertThat()
722732
.statusCode(OK.getStatusCode())
723-
.body("data.displayName", CoreMatchers.equalTo("HDF5 Tool"))
724-
.body("data.scope", CoreMatchers.equalTo("file"))
725-
.body("data.contentType", CoreMatchers.equalTo("application/x-hdf5"));
733+
.body("data.displayName", CoreMatchers.equalTo("HDF5 Tool"));
734+
// .body("data.scope", CoreMatchers.equalTo("file"))
735+
// .body("data.contentType", CoreMatchers.equalTo("application/x-hdf5"));
726736

727737
//Delete the tool added by this test...
728738
Response deleteExternalTool = UtilIT.deleteExternalTool(toolId);

0 commit comments

Comments
 (0)