diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js index f659e36360ed61a293319b80d2c1874be6ae24a5..edb37b4ea9ccde6baad7e72cabe9abb04bf4f30c 100644 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/main.js @@ -5,20 +5,19 @@ define([ "test-compiled/test-update", "test-compiled/test-search", - "test/test-freezing", + "test-compiled/test-freezing", "test-compiled/test-get", - "test/test-delete", - "test/test-execute", - "test/test-evaluate", + "test-compiled/test-delete", + "test-compiled/test-execute", + "test-compiled/test-evaluate", "test/test-json", - // 'test/test-dto', + // 'test/test-dto', "test/test-dto-roundtrip", - "test/test-custom-services", - "test/test-dss-services", - "test/test-archive-unarchive", - - "test/test-import-export", + "test-compiled/test-custom-services", + "test-compiled/test-dss-services", + "test-compiled/test-archive-unarchive", + "test-compiled/test-import-export", ], function () { var testSuites = arguments return async function () { diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js deleted file mode 100644 index 69a2ae00ea8e5c4b46af4800b52cfff9fc154a47..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.js +++ /dev/null @@ -1,86 +0,0 @@ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testAction = function(c, fAction, actionType) { - c.start(); - - c.login(facade).then(function() { - c.ok("Login"); - return fAction(facade).then(function(result) { - c.ok(actionType); - c.finish(); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - QUnit.test("archiveDataSets()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) { - var ids = [ permId1, permId2 ]; - return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions()); - }); - } - - testAction(c, fAction, "Archived"); - }); - - QUnit.test("unarchiveDataSets()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) { - var ids = [ permId1, permId2 ]; - return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions()).then(function() { - return facade.unarchiveDataSets(ids, new dtos.DataSetUnarchiveOptions()); - }); - }); - } - - testAction(c, fAction, "Unarchived"); - }); - - QUnit.test("lockDataSets()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) { - var ids = [ permId1, permId2 ]; - return facade.lockDataSets(ids, new dtos.DataSetLockOptions()); - }); - } - - testAction(c, fAction, "Lock"); - }); - - QUnit.test("unlockDataSets()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function(permId1, permId2) { - var ids = [ permId1, permId2 ]; - return facade.lockDataSets(ids, new dtos.DataSetLockOptions()).then(function() { - return facade.unlockDataSets(ids, new dtos.DataSetUnlockOptions()); - }); - }); - } - - testAction(c, fAction, "Unlock"); - }); - - } - - return function() { - executeModule("Archive/Unarchive (RequireJS)", new openbis(), dtos); - executeModule("Archive/Unarchive (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Archive/Unarchive (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Archive/Unarchive (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Archive/Unarchive (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Archive/Unarchive (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}) \ No newline at end of file diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.ts new file mode 100644 index 0000000000000000000000000000000000000000..198b86e22d3c4da20b0b31751b9c798d68a0fb14 --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-archive-unarchive.ts @@ -0,0 +1,106 @@ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testAction = function (c, fAction, actionType) { + c.start() + + c.login(facade) + .then(function () { + c.ok("Login") + return fAction(facade).then(function (result) { + c.ok(actionType) + c.finish() + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("archiveDataSets()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function (permId1, permId2) { + var ids = [permId1, permId2] + return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions()) + }) + } + + testAction(c, fAction, "Archived") + }) + + QUnit.test("unarchiveDataSets()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function (permId1, permId2) { + var ids = [permId1, permId2] + return facade.archiveDataSets(ids, new dtos.DataSetArchiveOptions()).then(function () { + return facade.unarchiveDataSets(ids, new dtos.DataSetUnarchiveOptions()) + }) + }) + } + + testAction(c, fAction, "Unarchived") + }) + + QUnit.test("lockDataSets()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function (permId1, permId2) { + var ids = [permId1, permId2] + return facade.lockDataSets(ids, new dtos.DataSetLockOptions()) + }) + } + + testAction(c, fAction, "Lock") + }) + + QUnit.test("unlockDataSets()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade), c.createDataSet(facade)).then(function (permId1, permId2) { + var ids = [permId1, permId2] + return facade.lockDataSets(ids, new dtos.DataSetLockOptions()).then(function () { + return facade.unlockDataSets(ids, new dtos.DataSetUnlockOptions()) + }) + }) + } + + testAction(c, fAction, "Unlock") + }) + } + + resolve(function () { + executeModule("Archive/Unarchive (RequireJS)", new openbis(), dtos) + executeModule("Archive/Unarchive (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Archive/Unarchive (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Archive/Unarchive (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Archive/Unarchive (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Archive/Unarchive (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js deleted file mode 100644 index 1d28a9abddd7840de30978fe280cb950a08c6c80..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Test searching and executing custom AS services. - */ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testAction = function(c, fAction, fCheck) { - c.start(); - - c.login(facade).then(function() { - c.ok("Login"); - return fAction(facade).then(function(result) { - c.ok("Got results"); - fCheck(facade, result); - c.finish(); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - QUnit.test("searchCustomASServices()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var criteria = new dtos.CustomASServiceSearchCriteria(); - criteria.withCode().thatStartsWith("simple"); - return facade.searchCustomASServices(criteria, new dtos.CustomASServiceFetchOptions()); - } - - var fCheck = function(facade, result) { - var services = result.getObjects(); - c.assertEqual(services.length, 1); - var service = services[0]; - c.assertEqual(service.getCode().getPermId(), "simple-service", "Code"); - c.assertEqual(service.getDescription(), "a simple service", "Description"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeCustomASService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var id = new dtos.CustomASServiceCode("simple-service"); - var options = new dtos.CustomASServiceExecutionOptions().withParameter("a", "1").withParameter("space-code", "TEST"); - return facade.executeCustomASService(id, options); - } - - var fCheck = function(facade, result) { - c.assertEqual(1, result.getTotalCount()); - var space = result.getObjects()[0]; - c.assertEqual(space.getPermId(), "TEST", "PermId"); - c.assertEqual(space.getCode(), "TEST", "Code"); - c.assertEqual(space.getDescription(), null, "Description"); - c.assertDate(space.getRegistrationDate(), "Registration date", 2013, 4, 12, 12, 59); - } - - testAction(c, fAction, fCheck); - }); - } - - return function() { - executeModule("Custom AS service tests (RequireJS)", new openbis(), dtos); - executeModule("Custom AS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Custom AS service tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Custom AS service tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Custom AS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Custom AS service tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}) \ No newline at end of file diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.ts new file mode 100644 index 0000000000000000000000000000000000000000..cdf3d4bb39cde45930026b032eb6ba00187fabc3 --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-custom-services.ts @@ -0,0 +1,95 @@ +/** + * Test searching and executing custom AS services. + */ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testAction = function (c, fAction, fCheck) { + c.start() + + c.login(facade) + .then(function () { + c.ok("Login") + return fAction(facade).then(function (result) { + c.ok("Got results") + fCheck(facade, result) + c.finish() + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("searchCustomASServices()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var criteria = new dtos.CustomASServiceSearchCriteria() + criteria.withCode().thatStartsWith("simple") + return facade.searchCustomASServices(criteria, new dtos.CustomASServiceFetchOptions()) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.CustomASService>) { + var services = result.getObjects() + c.assertEqual(services.length, 1) + var service = services[0] + c.assertEqual(service.getCode().getPermId(), "simple-service", "Code") + c.assertEqual(service.getDescription(), "a simple service", "Description") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeCustomASService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var id = new dtos.CustomASServiceCode("simple-service") + var options = new dtos.CustomASServiceExecutionOptions().withParameter("a", "1").withParameter("space-code", "TEST") + return facade.executeCustomASService(id, options) + } + + var fCheck = function (facade: openbis.openbis, result: any) { + c.assertEqual(1, result.getTotalCount()) + var space = result.getObjects()[0] + c.assertEqual(space.getPermId(), "TEST", "PermId") + c.assertEqual(space.getCode(), "TEST", "Code") + c.assertEqual(space.getDescription(), null, "Description") + c.assertDate(space.getRegistrationDate(), "Registration date", 2013, 4, 12, 12, 59) + } + + testAction(c, fAction, fCheck) + }) + } + + resolve(function () { + executeModule("Custom AS service tests (RequireJS)", new openbis(), dtos) + executeModule("Custom AS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Custom AS service tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Custom AS service tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Custom AS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Custom AS service tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js deleted file mode 100644 index 9f85937732c27a5bc25731e599979a1f628f66a5..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.js +++ /dev/null @@ -1,398 +0,0 @@ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testDeleteWithoutTrash = function(c, fCreate, fFind, fDelete) { - c.start(); - - c.login(facade).then(function() { - return fCreate(facade).then(function(permId) { - c.assertNotNull(permId, "Entity was created"); - return fFind(facade, permId).then(function(entity) { - c.assertNotNull(entity, "Entity can be found"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(beforeDeletions) { - c.ok("Got before deletions"); - return fDelete(facade, permId).then(function() { - c.ok("Entity was deleted"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(afterDeletions) { - c.ok("Got after deletions"); - c.assertEqual(beforeDeletions.getObjects().length, afterDeletions.getObjects().length, "No new deletions found"); - return fFind(facade, permId).then(function(entityAfterDeletion) { - c.assertNull(entityAfterDeletion, "Entity was deleted"); - c.finish(); - }); - }); - }); - }); - }); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - var testDeleteWithTrashAndRevert = function(c, fCreate, fFind, fDelete) { - c.start(); - - c.login(facade).then(function() { - return fCreate(facade).then(function(permIdAndMore) { - if (permIdAndMore.identifier) { - permId = permIdAndMore.permId - } else { - permId = permIdAndMore; - } - c.assertNotNull(permId, "Entity was created"); - return fFind(facade, permId).then(function(entity) { - c.assertNotNull(entity, "Entity can be found"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then(function(beforeDeletions) { - c.ok("Got before deletions"); - return fDelete(facade, permId).then(function(deletionId) { - c.ok("Entity was deleted"); - c.assertNotEqual(deletionId.getTechId(), "", "Deletion tech id not an empty string"); - var fo = new dtos.DeletionFetchOptions(); - fo.withDeletedObjects(); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), fo).then(function(afterDeletions) { - var objects = afterDeletions.getObjects(); - c.ok("Got after deletions"); - c.assertEqual(objects.length, beforeDeletions.getObjects().length + 1, "One new deletion"); - var newDeletion = objects[afterDeletions.getObjects().length - 1]; - if (permIdAndMore.identifier) { - var deletedObject = newDeletion.deletedObjects[0]; - c.assertEqual(deletedObject.identifier, permIdAndMore.identifier, "Entity identifier match"); - c.assertEqual(deletedObject.entityTypeCode, permIdAndMore.entityTypeCode, "Entity type match"); - c.assertEqual(deletedObject.entityKind, permIdAndMore.entityKind, "Entity kind match"); - } - c.assertEqual(newDeletion.getId().getTechId(), deletionId.getTechId(), "Deletion ids match"); - return fFind(facade, permId).then(function(entityAfterDeletion) { - c.assertNull(entityAfterDeletion, "Entity was deleted"); - return facade.revertDeletions([ deletionId ]).then(function() { - c.ok("Reverted deletion"); - return fFind(facade, permId).then(function(entityAfterRevert) { - c.assertNotNull(entityAfterRevert, "Entity is back"); - c.finish(); - }); - }); - }); - }); - }); - }); - }); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - var testDeleteWithTrashAndConfirm = function(c, fCreate, fFind, fDelete) { - c.start(); - - c.login(facade).then( - function() { - return fCreate(facade).then( - function(permId) { - c.assertNotNull(permId, "Entity was created"); - return fFind(facade, permId).then( - function(entity) { - c.assertNotNull(entity, "Entity can be found"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then( - function(deletionsBeforeDeletion) { - c.ok("Got before deletions"); - return fDelete(facade, permId).then( - function(deletionId) { - c.ok("Entity was deleted"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()).then( - function(deletionsAfterDeletion) { - c.ok("Got after deletions"); - c.assertEqual(deletionsAfterDeletion.getObjects().length, deletionsBeforeDeletion.getObjects().length + 1, - "One new deletion"); - c.assertEqual(deletionsAfterDeletion.getObjects()[deletionsAfterDeletion.getObjects().length - 1].getId() - .getTechId(), deletionId.getTechId(), "Deletion ids match"); - return fFind(facade, permId).then( - function(entityAfterDeletion) { - c.assertNull(entityAfterDeletion, "Entity was deleted"); - return facade.confirmDeletions([ deletionId ]).then( - function() { - c.ok("Confirmed deletion"); - return fFind(facade, permId).then( - function(entityAfterConfirm) { - c.assertNull(entityAfterConfirm, "Entity is still gone"); - return facade.searchDeletions(new dtos.DeletionSearchCriteria(), - new dtos.DeletionFetchOptions()).then( - function(deletionsAfterConfirm) { - c.assertEqual(deletionsAfterConfirm.getObjects().length, - deletionsBeforeDeletion.getObjects().length, - "New deletion is also gone"); - c.finish(); - }); - }); - }); - }); - }); - }); - }); - }); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - QUnit.test("deleteSpaces()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createSpace, c.findSpace, c.deleteSpace); - }); - - QUnit.test("deleteProjects()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createProject, c.findProject, c.deleteProject); - }); - - QUnit.test("deleteExperiments() with revert", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndRevert(c, function(facade) { - return c.createExperiment(facade).then(function(permId) { - var fo = new dtos.ExperimentFetchOptions(); - fo.withType(); - return facade.getExperiments([permId], fo).then(function (map) { - var experiment = map[permId]; - return {"permId" : permId, - "identifier" : experiment.identifier, - "entityTypeCode" : experiment.type.code, - "entityKind" : dtos.EntityKind.EXPERIMENT}; - }); - }); - }, c.findExperiment, c.deleteExperiment); - }); - - QUnit.test("deleteExperiments() with confirm", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndConfirm(c, c.createExperiment, c.findExperiment, c.deleteExperiment); - }); - - QUnit.test("deleteSamples() with revert", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndRevert(c, function(facade) { - return c.createSample(facade).then(function(permId) { - var fo = new dtos.SampleFetchOptions(); - fo.withType(); - return facade.getSamples([permId], fo).then(function (map) { - var sample = map[permId]; - return {"permId" : permId, - "identifier" : sample.identifier, - "entityTypeCode" : sample.type.code, - "entityKind" : dtos.EntityKind.SAMPLE}; - }); - }); - }, c.findSample, c.deleteSample); - }); - - QUnit.test("deleteSamples() with confirm", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndConfirm(c, c.createSample, c.findSample, c.deleteSample); - }); - - QUnit.test("deleteDataSets() with revert", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndRevert(c, function(facade) { - return c.createDataSet(facade).then(function(permId) { - var fo = new dtos.DataSetFetchOptions(); - fo.withType(); - return facade.getDataSets([permId], fo).then(function (map) { - var dataSet = map[permId]; - return {"permId" : permId, - "identifier" : dataSet.code, - "entityTypeCode" : dataSet.type.code, - "entityKind" : dtos.EntityKind.DATA_SET}; - }); - }); - }, c.findDataSet, c.deleteDataSet); - }); - - QUnit.test("deleteDataSets() with confirm", function(assert) { - var c = new common(assert, dtos); - testDeleteWithTrashAndConfirm(c, c.createDataSet, c.findDataSet, c.deleteDataSet); - }); - - QUnit.test("deleteDataSets() with disallowed type without force flag", function(assert) { - var c = new common(assert, dtos); - - c.start(); - - c.login(facade).then(function() { - return c.createDataSetType(facade, "DELETION-TEST").then(function(typeId) { - c.assertNotNull(typeId, "Data set type created") - return c.createDataSet(facade, typeId.getPermId()).then(function(permId) { - c.assertNotNull(permId, "Entity was created"); - return c.deleteDataSet(facade, permId).then(function(deletionId) { - c.assertNotNull(deletionId, "Entity was moved to trash"); - var update = new dtos.DataSetTypeUpdate(); - update.setTypeId(typeId); - update.setDisallowDeletion(true); - return facade.updateDataSetTypes([update]).then(function() { - c.ok("Data set type updated") - return facade.confirmDeletions([ deletionId ]).then(function() { - c.fail("Confirmation of deletion should fail without the force flag"); - c.finish(); - }); - }); - }); - }); - }); - }).fail(function(error) { - c.assertContains(error.message, "Deletion failed because the following data sets have 'Disallow deletion' flag set to true in their type", "Expected error message"); - c.finish(); - }); - }); - - QUnit.test("deleteDataSets() with disallowed type with force flag", function(assert) { - var c = new common(assert, dtos); - - c.start(); - - c.login(facade).then(function() { - return c.createDataSetType(facade, "DELETION-TEST").then(function(typeId) { - c.assertNotNull(typeId, "Data set type created") - return c.createDataSet(facade, typeId.getPermId()).then(function(permId) { - c.assertNotNull(permId, "Entity was created"); - return c.deleteDataSet(facade, permId).then(function(deletionId) { - c.assertNotNull(deletionId, "Entity was moved to trash"); - var update = new dtos.DataSetTypeUpdate(); - update.setTypeId(typeId); - update.setDisallowDeletion(true); - return facade.updateDataSetTypes([update]).then(function() { - c.ok("Data set type updated") - var operation = new dtos.ConfirmDeletionsOperation([ deletionId ]); - operation.setForceDeletion(true); - var options = new dtos.SynchronousOperationExecutionOptions(); - return facade.executeOperations([ operation ], options).then(function() { - c.finish(); - }); - }); - }); - }); - }); - }).fail(function(error) { - c.fail("Confirmation of deletion should not fail with the force flag"); - c.finish(); - }); - }); - - QUnit.test("deleteMaterials()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createMaterial, c.findMaterial, c.deleteMaterial); - }); - - QUnit.test("deletePlugins()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createPlugin, c.findPlugin, c.deletePlugin); - }); - - QUnit.test("deletePropertyTypes()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createPropertyType, c.findPropertyType, c.deletePropertyType); - }); - - QUnit.test("deleteVocabularies()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createVocabulary, c.findVocabulary, c.deleteVocabulary); - }); - - QUnit.test("deleteVocabularyTerms()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.deleteVocabularyTerm); - }); - - QUnit.test("deleteExperimentTypes()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createExperimentType, c.findExperimentType, c.deleteExperimentType); - }); - - QUnit.test("deleteSampleTypes()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createSampleType, c.findSampleType, c.deleteSampleType); - }); - - QUnit.test("deleteDataSetTypes()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createDataSetType, c.findDataSetType, c.deleteDataSetType); - }); - - QUnit.test("deleteMaterialTypes()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createMaterialType, c.findMaterialType, c.deleteMaterialType); - }); - - QUnit.test("deleteExternalDms()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createExternalDms, c.findExternalDms, c.deleteExternalDms); - }); - - QUnit.test("replaceVocabularyTerms()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.replaceVocabularyTerm); - }); - - QUnit.test("deleteTags()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createTag, c.findTag, c.deleteTag); - }); - - QUnit.test("deleteAuthorizationGroups()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createAuthorizationGroup, c.findAuthorizationGroup, c.deleteAuthorizationGroup); - }); - - QUnit.test("deleteRoleAssignments()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createRoleAssignment, c.findRoleAssignment, c.deleteRoleAssignment); - }); - - QUnit.test("deleteOperationExecutions()", function(assert) { - var c = new common(assert, dtos); - - var findNotDeletedOrDeletePending = function(facade, permId) { - return c.findOperationExecution(facade, permId).then(function(execution) { - if (!execution || execution.getAvailability() == "DELETE_PENDING" || execution.getAvailability() == "DELETED") { - return null; - } else { - return execution; - } - }); - } - - testDeleteWithoutTrash(c, c.createOperationExecution, findNotDeletedOrDeletePending, c.deleteOperationExecution); - }); - - QUnit.test("deleteSemanticAnnotations()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createSemanticAnnotation, c.findSemanticAnnotation, c.deleteSemanticAnnotation); - }); - - QUnit.test("deleteQueries()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createQuery, c.findQuery, c.deleteQuery); - }); - - QUnit.test("deletePersons()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createPerson, c.findPerson, c.deletePerson); - }); - - QUnit.test("deletePersonalAccessTokens()", function(assert) { - var c = new common(assert, dtos); - testDeleteWithoutTrash(c, c.createPersonalAccessToken, c.findPersonalAccessToken, c.deletePersonalAccessToken); - }); - } - - return function() { - executeModule("Deletion tests (RequireJS)", new openbis(), dtos); - executeModule("Deletion tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Deletion tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Deletion tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Deletion tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Deletion tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}); diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.ts new file mode 100644 index 0000000000000000000000000000000000000000..029480d418c993420b4b8e0b39ba4b8b435ea11e --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-delete.ts @@ -0,0 +1,481 @@ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testDeleteWithoutTrash = function (c, fCreate, fFind, fDelete) { + c.start() + + c.login(facade) + .then(function () { + return fCreate(facade).then(function (permId) { + c.assertNotNull(permId, "Entity was created") + return fFind(facade, permId).then(function (entity) { + c.assertNotNull(entity, "Entity can be found") + return facade + .searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()) + .then(function (beforeDeletions) { + c.ok("Got before deletions") + return fDelete(facade, permId).then(function () { + c.ok("Entity was deleted") + return facade + .searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()) + .then(function (afterDeletions) { + c.ok("Got after deletions") + c.assertEqual( + beforeDeletions.getObjects().length, + afterDeletions.getObjects().length, + "No new deletions found" + ) + return fFind(facade, permId).then(function (entityAfterDeletion) { + c.assertNull(entityAfterDeletion, "Entity was deleted") + c.finish() + }) + }) + }) + }) + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + var testDeleteWithTrashAndRevert = function (c, fCreate, fFind, fDelete) { + c.start() + + c.login(facade) + .then(function () { + return fCreate(facade).then(function (permIdAndMore) { + var permId = null + if (permIdAndMore.identifier) { + permId = permIdAndMore.permId + } else { + permId = permIdAndMore + } + c.assertNotNull(permId, "Entity was created") + return fFind(facade, permId).then(function (entity) { + c.assertNotNull(entity, "Entity can be found") + return facade + .searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()) + .then(function (beforeDeletions) { + c.ok("Got before deletions") + return fDelete(facade, permId).then(function (deletionId) { + c.ok("Entity was deleted") + c.assertNotEqual(deletionId.getTechId(), "", "Deletion tech id not an empty string") + var fo = new dtos.DeletionFetchOptions() + fo.withDeletedObjects() + return facade.searchDeletions(new dtos.DeletionSearchCriteria(), fo).then(function (afterDeletions) { + var objects = afterDeletions.getObjects() + c.ok("Got after deletions") + c.assertEqual(objects.length, beforeDeletions.getObjects().length + 1, "One new deletion") + var newDeletion = objects[afterDeletions.getObjects().length - 1] + if (permIdAndMore.identifier) { + var deletedObject = newDeletion.getDeletedObjects()[0] + c.assertEqual(deletedObject.getIdentifier(), permIdAndMore.identifier, "Entity identifier match") + c.assertEqual( + deletedObject.getEntityTypeCode(), + permIdAndMore.entityTypeCode, + "Entity type match" + ) + c.assertEqual(deletedObject.getEntityKind(), permIdAndMore.entityKind, "Entity kind match") + } + c.assertEqual( + (<openbis.DeletionTechId>newDeletion.getId()).getTechId(), + deletionId.getTechId(), + "Deletion ids match" + ) + return fFind(facade, permId).then(function (entityAfterDeletion) { + c.assertNull(entityAfterDeletion, "Entity was deleted") + return facade.revertDeletions([deletionId]).then(function () { + c.ok("Reverted deletion") + return fFind(facade, permId).then(function (entityAfterRevert) { + c.assertNotNull(entityAfterRevert, "Entity is back") + c.finish() + }) + }) + }) + }) + }) + }) + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + var testDeleteWithTrashAndConfirm = function (c, fCreate, fFind, fDelete) { + c.start() + + c.login(facade) + .then(function () { + return fCreate(facade).then(function (permId) { + c.assertNotNull(permId, "Entity was created") + return fFind(facade, permId).then(function (entity) { + c.assertNotNull(entity, "Entity can be found") + return facade + .searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()) + .then(function (deletionsBeforeDeletion) { + c.ok("Got before deletions") + return fDelete(facade, permId).then(function (deletionId) { + c.ok("Entity was deleted") + return facade + .searchDeletions(new dtos.DeletionSearchCriteria(), new dtos.DeletionFetchOptions()) + .then(function (deletionsAfterDeletion) { + c.ok("Got after deletions") + c.assertEqual( + deletionsAfterDeletion.getObjects().length, + deletionsBeforeDeletion.getObjects().length + 1, + "One new deletion" + ) + c.assertEqual( + (<openbis.DeletionTechId>( + deletionsAfterDeletion + .getObjects() + [deletionsAfterDeletion.getObjects().length - 1].getId() + )).getTechId(), + deletionId.getTechId(), + "Deletion ids match" + ) + return fFind(facade, permId).then(function (entityAfterDeletion) { + c.assertNull(entityAfterDeletion, "Entity was deleted") + return facade.confirmDeletions([deletionId]).then(function () { + c.ok("Confirmed deletion") + return fFind(facade, permId).then(function (entityAfterConfirm) { + c.assertNull(entityAfterConfirm, "Entity is still gone") + return facade + .searchDeletions( + new dtos.DeletionSearchCriteria(), + new dtos.DeletionFetchOptions() + ) + .then(function (deletionsAfterConfirm) { + c.assertEqual( + deletionsAfterConfirm.getObjects().length, + deletionsBeforeDeletion.getObjects().length, + "New deletion is also gone" + ) + c.finish() + }) + }) + }) + }) + }) + }) + }) + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("deleteSpaces()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createSpace, c.findSpace, c.deleteSpace) + }) + + QUnit.test("deleteProjects()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createProject, c.findProject, c.deleteProject) + }) + + QUnit.test("deleteExperiments() with revert", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndRevert( + c, + function (facade: openbis.openbis) { + return c.createExperiment(facade).then(function (permId) { + var fo = new dtos.ExperimentFetchOptions() + fo.withType() + return facade.getExperiments([permId], fo).then(function (map) { + var experiment = map[permId] + return { + permId: permId, + identifier: experiment.getIdentifier(), + entityTypeCode: experiment.getType().getCode(), + entityKind: dtos.EntityKind.EXPERIMENT, + } + }) + }) + }, + c.findExperiment, + c.deleteExperiment + ) + }) + + QUnit.test("deleteExperiments() with confirm", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndConfirm(c, c.createExperiment, c.findExperiment, c.deleteExperiment) + }) + + QUnit.test("deleteSamples() with revert", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndRevert( + c, + function (facade: openbis.openbis) { + return c.createSample(facade).then(function (permId) { + var fo = new dtos.SampleFetchOptions() + fo.withType() + return facade.getSamples([permId], fo).then(function (map) { + var sample = map[permId] + return { + permId: permId, + identifier: sample.getIdentifier(), + entityTypeCode: sample.getType().getCode(), + entityKind: dtos.EntityKind.SAMPLE, + } + }) + }) + }, + c.findSample, + c.deleteSample + ) + }) + + QUnit.test("deleteSamples() with confirm", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndConfirm(c, c.createSample, c.findSample, c.deleteSample) + }) + + QUnit.test("deleteDataSets() with revert", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndRevert( + c, + function (facade: openbis.openbis) { + return c.createDataSet(facade).then(function (permId) { + var fo = new dtos.DataSetFetchOptions() + fo.withType() + return facade.getDataSets([permId], fo).then(function (map) { + var dataSet = map[permId] + return { + permId: permId, + identifier: dataSet.getCode(), + entityTypeCode: dataSet.getType().getCode(), + entityKind: dtos.EntityKind.DATA_SET, + } + }) + }) + }, + c.findDataSet, + c.deleteDataSet + ) + }) + + QUnit.test("deleteDataSets() with confirm", function (assert) { + var c = new common(assert, dtos) + testDeleteWithTrashAndConfirm(c, c.createDataSet, c.findDataSet, c.deleteDataSet) + }) + + QUnit.test("deleteDataSets() with disallowed type without force flag", function (assert) { + var c = new common(assert, dtos) + + c.start() + + c.login(facade) + .then(function () { + return c.createDataSetType(facade, "DELETION-TEST").then(function (typeId) { + c.assertNotNull(typeId, "Data set type created") + return c.createDataSet(facade, typeId.getPermId()).then(function (permId) { + c.assertNotNull(permId, "Entity was created") + return c.deleteDataSet(facade, permId).then(function (deletionId) { + c.assertNotNull(deletionId, "Entity was moved to trash") + var update = new dtos.DataSetTypeUpdate() + update.setTypeId(typeId) + update.setDisallowDeletion(true) + return facade.updateDataSetTypes([update]).then(function () { + c.ok("Data set type updated") + return facade.confirmDeletions([deletionId]).then(function () { + c.fail("Confirmation of deletion should fail without the force flag") + c.finish() + }) + }) + }) + }) + }) + }) + .fail(function (error) { + c.assertContains( + error.message, + "Deletion failed because the following data sets have 'Disallow deletion' flag set to true in their type", + "Expected error message" + ) + c.finish() + }) + }) + + QUnit.test("deleteDataSets() with disallowed type with force flag", function (assert) { + var c = new common(assert, dtos) + + c.start() + + c.login(facade) + .then(function () { + return c.createDataSetType(facade, "DELETION-TEST").then(function (typeId) { + c.assertNotNull(typeId, "Data set type created") + return c.createDataSet(facade, typeId.getPermId()).then(function (permId) { + c.assertNotNull(permId, "Entity was created") + return c.deleteDataSet(facade, permId).then(function (deletionId) { + c.assertNotNull(deletionId, "Entity was moved to trash") + var update = new dtos.DataSetTypeUpdate() + update.setTypeId(typeId) + update.setDisallowDeletion(true) + return facade.updateDataSetTypes([update]).then(function () { + c.ok("Data set type updated") + var operation = new dtos.ConfirmDeletionsOperation([deletionId]) + operation.setForceDeletion(true) + var options = new dtos.SynchronousOperationExecutionOptions() + return facade.executeOperations([operation], options).then(function () { + c.finish() + }) + }) + }) + }) + }) + }) + .fail(function (error) { + c.fail("Confirmation of deletion should not fail with the force flag") + c.finish() + }) + }) + + QUnit.test("deleteMaterials()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createMaterial, c.findMaterial, c.deleteMaterial) + }) + + QUnit.test("deletePlugins()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createPlugin, c.findPlugin, c.deletePlugin) + }) + + QUnit.test("deletePropertyTypes()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createPropertyType, c.findPropertyType, c.deletePropertyType) + }) + + QUnit.test("deleteVocabularies()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createVocabulary, c.findVocabulary, c.deleteVocabulary) + }) + + QUnit.test("deleteVocabularyTerms()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.deleteVocabularyTerm) + }) + + QUnit.test("deleteExperimentTypes()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createExperimentType, c.findExperimentType, c.deleteExperimentType) + }) + + QUnit.test("deleteSampleTypes()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createSampleType, c.findSampleType, c.deleteSampleType) + }) + + QUnit.test("deleteDataSetTypes()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createDataSetType, c.findDataSetType, c.deleteDataSetType) + }) + + QUnit.test("deleteMaterialTypes()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createMaterialType, c.findMaterialType, c.deleteMaterialType) + }) + + QUnit.test("deleteExternalDms()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createExternalDms, c.findExternalDms, c.deleteExternalDms) + }) + + QUnit.test("replaceVocabularyTerms()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createVocabularyTerm, c.findVocabularyTerm, c.replaceVocabularyTerm) + }) + + QUnit.test("deleteTags()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createTag, c.findTag, c.deleteTag) + }) + + QUnit.test("deleteAuthorizationGroups()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createAuthorizationGroup, c.findAuthorizationGroup, c.deleteAuthorizationGroup) + }) + + QUnit.test("deleteRoleAssignments()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createRoleAssignment, c.findRoleAssignment, c.deleteRoleAssignment) + }) + + QUnit.test("deleteOperationExecutions()", function (assert) { + var c = new common(assert, dtos) + + var findNotDeletedOrDeletePending = function (facade: openbis.openbis, permId) { + return c.findOperationExecution(facade, permId).then(function (execution) { + if (!execution || execution.getAvailability() == "DELETE_PENDING" || execution.getAvailability() == "DELETED") { + return null + } else { + return execution + } + }) + } + + testDeleteWithoutTrash(c, c.createOperationExecution, findNotDeletedOrDeletePending, c.deleteOperationExecution) + }) + + QUnit.test("deleteSemanticAnnotations()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createSemanticAnnotation, c.findSemanticAnnotation, c.deleteSemanticAnnotation) + }) + + QUnit.test("deleteQueries()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createQuery, c.findQuery, c.deleteQuery) + }) + + QUnit.test("deletePersons()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createPerson, c.findPerson, c.deletePerson) + }) + + QUnit.test("deletePersonalAccessTokens()", function (assert) { + var c = new common(assert, dtos) + testDeleteWithoutTrash(c, c.createPersonalAccessToken, c.findPersonalAccessToken, c.deletePersonalAccessToken) + }) + } + + resolve(function () { + executeModule("Deletion tests (RequireJS)", new openbis(), dtos) + executeModule("Deletion tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Deletion tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Deletion tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Deletion tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Deletion tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js deleted file mode 100644 index 8fe9957a3c2eeea9c69abcb4637e241f629539d8..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.js +++ /dev/null @@ -1,287 +0,0 @@ -/** - * Test searching and executing DSS services. - */ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testAction = function(c, fAction, fCheck) { - c.start(); - - c.login(facade).then(function() { - c.ok("Login"); - return fAction(facade).then(function(result) { - c.ok("Got results"); - var token = fCheck(facade, result); - if (token) { - token.then(function() { - c.finish() - }); - } else { - c.finish(); - } - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - var testActionWhichShouldFail = function(c, fAction, errorMessage) { - c.start(); - - c.login(facade).then(function() { - c.ok("Login"); - return fAction(facade).then(function(result) { - c.fail("Action supposed to fail"); - c.finish(); - }); - }).fail(function(error) { - c.ok("Action failed as expected"); - c.assertEqual(error.message, errorMessage, "Error message"); - c.finish(); - }); - } - - QUnit.test("searchSearchDomainService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var criteria = new dtos.SearchDomainServiceSearchCriteria(); - var fetchOptions = new dtos.SearchDomainServiceFetchOptions(); - return facade.searchSearchDomainServices(criteria, fetchOptions); - } - - var fCheck = function(facade, result) { - c.assertEqual(result.getTotalCount(), 4, "Number of results"); - c.assertEqual(result.getObjects().length, 4, "Number of results"); - var objects = result.getObjects(); - objects.sort(function(o1, o2) { return o1.getPermId().toString().localeCompare(o2.getPermId().toString())}); - c.assertEqual(objects[1].getPermId().toString(), "DSS1:echo-database", "Perm id"); - c.assertEqual(objects[1].getName(), "echo-database", "Name"); - c.assertEqual(objects[1].getLabel(), "Echo database", "Label"); - c.assertEqual(objects[1].getPossibleSearchOptionsKey(), "optionsKey", "Possible searcg option keys"); - c.assertEqual(objects[1].getPossibleSearchOptions().toString(), "Alpha [alpha],beta [beta]", "Possible search options"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeSearchDomainService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var options = new dtos.SearchDomainServiceExecutionOptions(); - options.withPreferredSearchDomain("echo-database"); - options.withSearchString("key").withParameter("key", - JSON.stringify({ - "searchDomain" : "Echo database", - "dataSetCode" : "20130415093804724-403", - "pathInDataSet" : "PATH-2", - "sequenceIdentifier" : "ID-2", - "positionInSequence" : "2" - })); - return facade.executeSearchDomainService(options); - } - - var fCheck = function(facade, result) { - c.assertEqual(result.getTotalCount(), 2, "Number of results"); - c.assertEqual(result.getObjects().length, 2, "Number of results"); - var objects = result.getObjects(); - objects.sort(function(o1, o2) { return o1.getServicePermId().toString().localeCompare(o2.getServicePermId().toString())}); - c.assertEqual(objects[0].getServicePermId().toString(), "DSS1:echo-database", "Service perm id"); - c.assertEqual(objects[0].getSearchDomainName(), "echo-database", "Search domain name"); - c.assertEqual(objects[0].getSearchDomainLabel(), "Echo database", "Search domain label"); - c.assertEqual(objects[0].getEntityIdentifier(), "20130415093804724-403", "Entity identifier"); - c.assertEqual(objects[0].getEntityKind(), "DATA_SET", "Entity kind"); - c.assertEqual(objects[0].getEntityType(), "UNKNOWN", "Entity type"); - c.assertEqual(objects[0].getEntityPermId(), "20130415093804724-403", "Entity perm id"); - c.assertEqual(JSON.stringify(objects[0].getResultDetails()), JSON.stringify({"identifier": "ID-2", - "path_in_data_set": "PATH-2", "position": "2"}), "Result details"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("searchAggregationService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var criteria = new dtos.AggregationServiceSearchCriteria(); - var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1")); - criteria.withId().thatEquals(id); - var fetchOptions = new dtos.AggregationServiceFetchOptions(); - return facade.searchAggregationServices(criteria, fetchOptions); - } - - var fCheck = function(facade, result) { - c.assertEqual(result.getTotalCount(), 1, "Number of results"); - c.assertEqual(result.getObjects().length, 1, "Number of results"); - var objects = result.getObjects(); - c.assertEqual(objects[0].getPermId().toString(), "DSS1:js-test", "Perm id"); - c.assertEqual(objects[0].getName(), "js-test", "Name"); - c.assertEqual(objects[0].getLabel(), "js-test", "Label"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeAggregationService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1")); - var options = new dtos.AggregationServiceExecutionOptions(); - options.withParameter("method", "test"); - options.withParameter("answer", 42).withParameter("pi", 3.1415926); - return facade.executeAggregationService(id, options); - } - - var fCheck = function(facade, tableModel) { - c.assertEqual(tableModel.getColumns().toString(), "key,value", "Table columns"); - c.assertEqual(tableModel.getRows().toString(), "method,test,answer,42,pi,3.1415926", "Table rows"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeAggregationService() with data store code is null", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId(null)); - var options = new dtos.AggregationServiceExecutionOptions(); - return facade.executeAggregationService(id, options); - } - - testActionWhichShouldFail(c, fAction, "Data store code cannot be empty. (Context: [])"); - }); - - QUnit.test("executeAggregationService() with data store id is null", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var id = new dtos.DssServicePermId("js-test", null); - var options = new dtos.AggregationServiceExecutionOptions(); - return facade.executeAggregationService(id, options); - } - - testActionWhichShouldFail(c, fAction, "Data store id cannot be null. (Context: [])"); - }); - - QUnit.test("executeAggregationService() with key is null", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var id = new dtos.DssServicePermId(null, new dtos.DataStorePermId("DSS1")); - var options = new dtos.AggregationServiceExecutionOptions(); - return facade.executeAggregationService(id, options); - } - - testActionWhichShouldFail(c, fAction, "Service key cannot be empty. (Context: [])"); - }); - - QUnit.test("searchReportingService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var criteria = new dtos.ReportingServiceSearchCriteria(); - var id = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1")); - criteria.withId().thatEquals(id); - var fetchOptions = new dtos.ReportingServiceFetchOptions(); - return facade.searchReportingServices(criteria, fetchOptions); - } - - var fCheck = function(facade, result) { - c.assertEqual(result.getTotalCount(), 1, "Number of results"); - c.assertEqual(result.getObjects().length, 1, "Number of results"); - var objects = result.getObjects(); - c.assertEqual(objects[0].getPermId().toString(), "DSS1:test-reporting-service", "Perm id"); - c.assertEqual(objects[0].getName(), "test-reporting-service", "Name"); - c.assertEqual(objects[0].getLabel(), "Test Jython Reporting", "Label"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeReportingService()", function(assert) { - var c = new common(assert, dtos); - var dataSetCode; - - var fAction = function(facade) { - return $.when(c.createDataSet(facade)).then(function(permId) { - dataSetCode = permId.getPermId(); - var serviceId = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1")); - var options = new dtos.ReportingServiceExecutionOptions(); - options.withDataSets(dataSetCode); - return facade.executeReportingService(serviceId, options); - }); - } - - var fCheck = function(facade, tableModel) { - c.assertEqual(tableModel.getColumns().toString(), "Data Set,Data Set Type", "Table columns"); - c.assertEqual(tableModel.getRows().toString(), dataSetCode + ",ALIGNMENT", "Table rows"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("searchProcessingService()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var criteria = new dtos.ProcessingServiceSearchCriteria(); - var id = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1")); - criteria.withId().thatEquals(id); - var fetchOptions = new dtos.ProcessingServiceFetchOptions(); - return facade.searchProcessingServices(criteria, fetchOptions); - } - - var fCheck = function(facade, result) { - c.assertEqual(result.getTotalCount(), 1, "Number of results"); - c.assertEqual(result.getObjects().length, 1, "Number of results"); - var objects = result.getObjects(); - c.assertEqual(objects[0].getPermId().toString(), "DSS1:test-processing-service", "Perm id"); - c.assertEqual(objects[0].getName(), "test-processing-service", "Name"); - c.assertEqual(objects[0].getLabel(), "Test Jython Processing", "Label"); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeProcessingService()", function(assert) { - var c = new common(assert, dtos); - var dataSetCode; - - var fAction = function(facade) { - return $.when(c.createDataSet(facade)).then(function(permId) { - dataSetCode = permId.getPermId(); - var serviceId = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1")); - var options = new dtos.ProcessingServiceExecutionOptions(); - options.withDataSets([dataSetCode]); - return facade.executeProcessingService(serviceId, options); - }); - } - - var fCheck = function(facade) { - return $.when(c.waitUntilEmailWith(facade, dataSetCode, 10000).then(function(emails) { - c.assertEqual(emails[0][0].value, "franz-josef.elmer@systemsx.ch", "Email To"); - c.assertEqual(emails[0][1].value, "'Test Jython Processing' [test-processing-service] processing\n finished", "Email Subject"); - c.assertContains(emails[0][2].value, dataSetCode, "Email Content with data set " + dataSetCode); - })); - } - - testAction(c, fAction, fCheck); - }); - - } - - return function() { - executeModule("DSS service tests (RequireJS)", new openbis(), dtos); - executeModule("DSS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("DSS service tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("DSS service tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("DSS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("DSS service tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}) \ No newline at end of file diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.ts new file mode 100644 index 0000000000000000000000000000000000000000..8f33dec837a5ffe82802eef5135bffed86e191f7 --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-dss-services.ts @@ -0,0 +1,324 @@ +/** + * Test searching and executing DSS services. + */ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testAction = function (c, fAction, fCheck) { + c.start() + + c.login(facade) + .then(function () { + c.ok("Login") + return fAction(facade).then(function (result) { + c.ok("Got results") + var token = fCheck(facade, result) + if (token) { + token.then(function () { + c.finish() + }) + } else { + c.finish() + } + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + var testActionWhichShouldFail = function (c, fAction, errorMessage) { + c.start() + + c.login(facade) + .then(function () { + c.ok("Login") + return fAction(facade).then(function (result) { + c.fail("Action supposed to fail") + c.finish() + }) + }) + .fail(function (error) { + c.ok("Action failed as expected") + c.assertEqual(error.message, errorMessage, "Error message") + c.finish() + }) + } + + QUnit.test("searchSearchDomainService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var criteria = new dtos.SearchDomainServiceSearchCriteria() + var fetchOptions = new dtos.SearchDomainServiceFetchOptions() + return facade.searchSearchDomainServices(criteria, fetchOptions) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.SearchDomainService>) { + c.assertEqual(result.getTotalCount(), 4, "Number of results") + c.assertEqual(result.getObjects().length, 4, "Number of results") + var objects = result.getObjects() + objects.sort(function (o1, o2) { + return o1.getPermId().toString().localeCompare(o2.getPermId().toString()) + }) + c.assertEqual(objects[1].getPermId().toString(), "DSS1:echo-database", "Perm id") + c.assertEqual(objects[1].getName(), "echo-database", "Name") + c.assertEqual(objects[1].getLabel(), "Echo database", "Label") + c.assertEqual(objects[1].getPossibleSearchOptionsKey(), "optionsKey", "Possible searcg option keys") + c.assertEqual(objects[1].getPossibleSearchOptions().toString(), "Alpha [alpha],beta [beta]", "Possible search options") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeSearchDomainService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var options = new dtos.SearchDomainServiceExecutionOptions() + options.withPreferredSearchDomain("echo-database") + options.withSearchString("key").withParameter( + "key", + JSON.stringify({ + searchDomain: "Echo database", + dataSetCode: "20130415093804724-403", + pathInDataSet: "PATH-2", + sequenceIdentifier: "ID-2", + positionInSequence: "2", + }) + ) + return facade.executeSearchDomainService(options) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.SearchDomainServiceExecutionResult>) { + c.assertEqual(result.getTotalCount(), 2, "Number of results") + c.assertEqual(result.getObjects().length, 2, "Number of results") + var objects = result.getObjects() + objects.sort(function (o1, o2) { + return o1.getServicePermId().toString().localeCompare(o2.getServicePermId().toString()) + }) + c.assertEqual(objects[0].getServicePermId().toString(), "DSS1:echo-database", "Service perm id") + c.assertEqual(objects[0].getSearchDomainName(), "echo-database", "Search domain name") + c.assertEqual(objects[0].getSearchDomainLabel(), "Echo database", "Search domain label") + c.assertEqual(objects[0].getEntityIdentifier(), "20130415093804724-403", "Entity identifier") + c.assertEqual(objects[0].getEntityKind(), "DATA_SET", "Entity kind") + c.assertEqual(objects[0].getEntityType(), "UNKNOWN", "Entity type") + c.assertEqual(objects[0].getEntityPermId(), "20130415093804724-403", "Entity perm id") + c.assertEqual( + JSON.stringify(objects[0].getResultDetails()), + JSON.stringify({ identifier: "ID-2", path_in_data_set: "PATH-2", position: "2" }), + "Result details" + ) + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("searchAggregationService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var criteria = new dtos.AggregationServiceSearchCriteria() + var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1")) + criteria.withId().thatEquals(id) + var fetchOptions = new dtos.AggregationServiceFetchOptions() + return facade.searchAggregationServices(criteria, fetchOptions) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.AggregationService>) { + c.assertEqual(result.getTotalCount(), 1, "Number of results") + c.assertEqual(result.getObjects().length, 1, "Number of results") + var objects = result.getObjects() + c.assertEqual(objects[0].getPermId().toString(), "DSS1:js-test", "Perm id") + c.assertEqual(objects[0].getName(), "js-test", "Name") + c.assertEqual(objects[0].getLabel(), "js-test", "Label") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeAggregationService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId("DSS1")) + var options = new dtos.AggregationServiceExecutionOptions() + options.withParameter("method", "test") + options.withParameter("answer", 42).withParameter("pi", 3.1415926) + return facade.executeAggregationService(id, options) + } + + var fCheck = function (facade: openbis.openbis, tableModel: openbis.TableModel) { + c.assertEqual(tableModel.getColumns().toString(), "key,value", "Table columns") + c.assertEqual(tableModel.getRows().toString(), "method,test,answer,42,pi,3.1415926", "Table rows") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeAggregationService() with data store code is null", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var id = new dtos.DssServicePermId("js-test", new dtos.DataStorePermId(null)) + var options = new dtos.AggregationServiceExecutionOptions() + return facade.executeAggregationService(id, options) + } + + testActionWhichShouldFail(c, fAction, "Data store code cannot be empty. (Context: [])") + }) + + QUnit.test("executeAggregationService() with data store id is null", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var id = new dtos.DssServicePermId("js-test", null) + var options = new dtos.AggregationServiceExecutionOptions() + return facade.executeAggregationService(id, options) + } + + testActionWhichShouldFail(c, fAction, "Data store id cannot be null. (Context: [])") + }) + + QUnit.test("executeAggregationService() with key is null", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var id = new dtos.DssServicePermId(null, new dtos.DataStorePermId("DSS1")) + var options = new dtos.AggregationServiceExecutionOptions() + return facade.executeAggregationService(id, options) + } + + testActionWhichShouldFail(c, fAction, "Service key cannot be empty. (Context: [])") + }) + + QUnit.test("searchReportingService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var criteria = new dtos.ReportingServiceSearchCriteria() + var id = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1")) + criteria.withId().thatEquals(id) + var fetchOptions = new dtos.ReportingServiceFetchOptions() + return facade.searchReportingServices(criteria, fetchOptions) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.ReportingService>) { + c.assertEqual(result.getTotalCount(), 1, "Number of results") + c.assertEqual(result.getObjects().length, 1, "Number of results") + var objects = result.getObjects() + c.assertEqual(objects[0].getPermId().toString(), "DSS1:test-reporting-service", "Perm id") + c.assertEqual(objects[0].getName(), "test-reporting-service", "Name") + c.assertEqual(objects[0].getLabel(), "Test Jython Reporting", "Label") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeReportingService()", function (assert) { + var c = new common(assert, dtos) + var dataSetCode + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade)).then(function (permId) { + dataSetCode = permId.getPermId() + var serviceId = new dtos.DssServicePermId("test-reporting-service", new dtos.DataStorePermId("DSS1")) + var options = new dtos.ReportingServiceExecutionOptions() + options.withDataSets(dataSetCode) + return facade.executeReportingService(serviceId, options) + }) + } + + var fCheck = function (facade: openbis.openbis, tableModel: openbis.TableModel) { + c.assertEqual(tableModel.getColumns().toString(), "Data Set,Data Set Type", "Table columns") + c.assertEqual(tableModel.getRows().toString(), dataSetCode + ",ALIGNMENT", "Table rows") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("searchProcessingService()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var criteria = new dtos.ProcessingServiceSearchCriteria() + var id = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1")) + criteria.withId().thatEquals(id) + var fetchOptions = new dtos.ProcessingServiceFetchOptions() + return facade.searchProcessingServices(criteria, fetchOptions) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.SearchResult<openbis.ProcessingService>) { + c.assertEqual(result.getTotalCount(), 1, "Number of results") + c.assertEqual(result.getObjects().length, 1, "Number of results") + var objects = result.getObjects() + c.assertEqual(objects[0].getPermId().toString(), "DSS1:test-processing-service", "Perm id") + c.assertEqual(objects[0].getName(), "test-processing-service", "Name") + c.assertEqual(objects[0].getLabel(), "Test Jython Processing", "Label") + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeProcessingService()", function (assert) { + var c = new common(assert, dtos) + var dataSetCode + + var fAction = function (facade: openbis.openbis) { + return $.when(c.createDataSet(facade)).then(function (permId) { + dataSetCode = permId.getPermId() + var serviceId = new dtos.DssServicePermId("test-processing-service", new dtos.DataStorePermId("DSS1")) + var options = new dtos.ProcessingServiceExecutionOptions() + options.withDataSets([dataSetCode]) + return facade.executeProcessingService(serviceId, options) + }) + } + + var fCheck = function (facade: openbis.openbis) { + return $.when( + c.waitUntilEmailWith(facade, dataSetCode, 10000).then(function (emails) { + c.assertEqual(emails[0][0].value, "franz-josef.elmer@systemsx.ch", "Email To") + c.assertEqual( + emails[0][1].value, + "'Test Jython Processing' [test-processing-service] processing\n finished", + "Email Subject" + ) + c.assertContains(emails[0][2].value, dataSetCode, "Email Content with data set " + dataSetCode) + }) + ) + } + + testAction(c, fAction, fCheck) + }) + } + + resolve(function () { + executeModule("DSS service tests (RequireJS)", new openbis(), dtos) + executeModule("DSS service tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("DSS service tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "DSS service tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("DSS service tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "DSS service tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js deleted file mode 100644 index b84e07c3c16110740975b7b9256f6964b46ae034..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.js +++ /dev/null @@ -1,139 +0,0 @@ -define([ - "jquery", - "underscore", - "openbis", - "test/openbis-execute-operations", - "test/common", - "test/dtos" -], function ($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function (moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testDynamicPropertyPlugin = function (assert, databasePlugin) { - var c = new common(assert, dtos); - c.start(); - - c.login(facade) - .then(function () { - var creation = new dtos.PluginCreation(); - creation.setName(c.generateId("plugin")); - creation.setPluginType(dtos.PluginType.DYNAMIC_PROPERTY); - creation.setScript("def calculate():\n return 'testValue'"); - - return $.when( - facade.createPlugins([creation]), - c.createSample(facade) - ).then(function (pluginIds, sampleId) { - var options = new dtos.DynamicPropertyPluginEvaluationOptions(); - if (databasePlugin) { - options.setPluginId(pluginIds[0]); - } else { - options.setPluginScript(creation.getScript()); - } - options.setObjectId(sampleId); - - return facade.evaluatePlugin(options).then(function (result) { - c.assertEqual( - result.getValue(), - "testValue", - "Evaluation result value" - ); - c.finish(); - }); - }); - }) - .fail(function (error) { - c.fail(error.message); - c.finish(); - }); - }; - - var testEntityValidationPlugin = function (assert, databasePlugin) { - var c = new common(assert, dtos); - c.start(); - - c.login(facade) - .then(function () { - var creation = new dtos.PluginCreation(); - creation.setName(c.generateId("plugin")); - creation.setPluginType(dtos.PluginType.ENTITY_VALIDATION); - creation.setScript( - "def validate(entity, isNew):\n requestValidation(entity)\n if isNew:\n return 'testError'\n else:\n return None" - ); - - return $.when( - facade.createPlugins([creation]), - c.createSample(facade) - ).then(function (pluginIds, sampleId) { - var options = new dtos.EntityValidationPluginEvaluationOptions(); - if (databasePlugin) { - options.setPluginId(pluginIds[0]); - } else { - options.setPluginScript(creation.getScript()); - } - options.setNew(true); - options.setObjectId(sampleId); - - return $.when( - facade.evaluatePlugin(options), - c.findSample(facade, sampleId) - ).then(function (result, sample) { - c.assertEqual( - result.getError(), - "testError", - "Evaluation result error" - ); - c.assertObjectsWithValues( - result.getRequestedValidations(), - "identifier", - [sample.getIdentifier().getIdentifier()] - ); - - c.finish(); - }); - }); - }) - .fail(function (error) { - c.fail(error.message); - c.finish(); - }); - }; - - QUnit.test( - "evaluatePlugin() dynamic property plugin from database", - function (assert) { - return testDynamicPropertyPlugin(assert, true); - } - ); - - QUnit.test( - "evaluatePlugin() dynamic property plugin from script", - function (assert) { - return testDynamicPropertyPlugin(assert, false); - } - ); - - QUnit.test( - "evaluatePlugin() entity validation plugin from database", - function (assert) { - return testEntityValidationPlugin(assert, true); - } - ); - - QUnit.test( - "evaluatePlugin() entity validation plugin from script", - function (assert) { - return testEntityValidationPlugin(assert, false); - } - ); - }; - - return function () { - executeModule("Evaluate tests (RequireJS)", new openbis(), dtos); - executeModule("Evaluate tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Evaluate tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Evaluate tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Evaluate tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Evaluate tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - }; -}); diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.ts new file mode 100644 index 0000000000000000000000000000000000000000..17366ad4d957272b0fed83aaa6575f926361e0c5 --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-evaluate.ts @@ -0,0 +1,122 @@ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testDynamicPropertyPlugin = function (assert, databasePlugin) { + var c = new common(assert, dtos) + c.start() + + c.login(facade) + .then(function () { + var creation = new dtos.PluginCreation() + creation.setName(c.generateId("plugin")) + creation.setPluginType(dtos.PluginType.DYNAMIC_PROPERTY) + creation.setScript("def calculate():\n return 'testValue'") + + return $.when(facade.createPlugins([creation]), c.createSample(facade)).then(function (pluginIds, sampleId) { + var options = new dtos.DynamicPropertyPluginEvaluationOptions() + if (databasePlugin) { + options.setPluginId(pluginIds[0]) + } else { + options.setPluginScript(creation.getScript()) + } + options.setObjectId(sampleId) + + return facade.evaluatePlugin(options).then(function (result) { + c.assertEqual( + (<openbis.DynamicPropertyPluginEvaluationResult>result).getValue(), + "testValue", + "Evaluation result value" + ) + c.finish() + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + var testEntityValidationPlugin = function (assert, databasePlugin) { + var c = new common(assert, dtos) + c.start() + + c.login(facade) + .then(function () { + var creation = new dtos.PluginCreation() + creation.setName(c.generateId("plugin")) + creation.setPluginType(dtos.PluginType.ENTITY_VALIDATION) + creation.setScript( + "def validate(entity, isNew):\n requestValidation(entity)\n if isNew:\n return 'testError'\n else:\n return None" + ) + + return $.when(facade.createPlugins([creation]), c.createSample(facade)).then(function (pluginIds, sampleId) { + var options = new dtos.EntityValidationPluginEvaluationOptions() + if (databasePlugin) { + options.setPluginId(pluginIds[0]) + } else { + options.setPluginScript(creation.getScript()) + } + options.setNew(true) + options.setObjectId(sampleId) + + return $.when(facade.evaluatePlugin(options), c.findSample(facade, sampleId)).then(function (result, sample) { + c.assertEqual(result.getError(), "testError", "Evaluation result error") + c.assertObjectsWithValues(result.getRequestedValidations(), "identifier", [sample.getIdentifier().getIdentifier()]) + + c.finish() + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("evaluatePlugin() dynamic property plugin from database", function (assert) { + return testDynamicPropertyPlugin(assert, true) + }) + + QUnit.test("evaluatePlugin() dynamic property plugin from script", function (assert) { + return testDynamicPropertyPlugin(assert, false) + }) + + QUnit.test("evaluatePlugin() entity validation plugin from database", function (assert) { + return testEntityValidationPlugin(assert, true) + }) + + QUnit.test("evaluatePlugin() entity validation plugin from script", function (assert) { + return testEntityValidationPlugin(assert, false) + }) + } + + resolve(function () { + executeModule("Evaluate tests (RequireJS)", new openbis(), dtos) + executeModule("Evaluate tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Evaluate tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Evaluate tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Evaluate tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Evaluate tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js deleted file mode 100644 index 75964c52734cf750f450e951d3dbef5c4a6ae23c..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.js +++ /dev/null @@ -1,72 +0,0 @@ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - QUnit.test("executeQuery()", function(assert) { - var c = new common(assert, dtos); - c.start(); - - c.login(facade).then(function() { - var creation = new dtos.QueryCreation(); - creation.setName(c.generateId("query")); - creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB")); - creation.setQueryType(dtos.QueryType.GENERIC); - creation.setSql("select perm_id, code from projects where perm_id = ${perm_id}"); - - return facade.createQueries([ creation ]).then(function(techIds) { - var options = new dtos.QueryExecutionOptions(); - options.withParameter("perm_id", "20130412150031345-203"); - - return facade.executeQuery(techIds[0], options).then(function(table) { - c.assertEqual(table.getColumns().length, 2, "Columns count"); - c.assertEqual(table.getColumns()[0].title, "perm_id", "Column[0] title"); - c.assertEqual(table.getColumns()[1].title, "code", "Column[1] title"); - c.assertEqual(table.getRows().length, 1, "Rows count"); - c.assertEqual(table.getRows()[0][0].value, "20130412150031345-203", "Value[0][0]"); - c.assertEqual(table.getRows()[0][1].value, "TEST-PROJECT", "Value[0][1]"); - - c.finish(); - }); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - }); - - QUnit.test("executeSql()", function(assert) { - var c = new common(assert, dtos); - c.start(); - - c.login(facade).then(function() { - var options = new dtos.SqlExecutionOptions(); - options.withDatabaseId(new dtos.QueryDatabaseName("openbisDB")); - options.withParameter("perm_id", "20130412150031345-203"); - - return facade.executeSql("select perm_id, code from projects where perm_id = ${perm_id}", options).then(function(table) { - c.assertEqual(table.getColumns().length, 2, "Columns count"); - c.assertEqual(table.getColumns()[0].title, "perm_id", "Column[0] title"); - c.assertEqual(table.getColumns()[1].title, "code", "Column[1] title"); - c.assertEqual(table.getRows().length, 1, "Rows count"); - c.assertEqual(table.getRows()[0][0].value, "20130412150031345-203", "Value[0][0]"); - c.assertEqual(table.getRows()[0][1].value, "TEST-PROJECT", "Value[0][1]"); - - c.finish(); - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - }); - - } - - return function() { - executeModule("Execute tests (RequireJS)", new openbis(), dtos); - executeModule("Execute tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Execute tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Execute tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Execute tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Execute tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}); diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.ts new file mode 100644 index 0000000000000000000000000000000000000000..582d518f9b1eb6533f2f187f48d6e36f84622c1b --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-execute.ts @@ -0,0 +1,94 @@ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + QUnit.test("executeQuery()", function (assert) { + var c = new common(assert, dtos) + c.start() + + c.login(facade) + .then(function () { + var creation = new dtos.QueryCreation() + creation.setName(c.generateId("query")) + creation.setDatabaseId(new dtos.QueryDatabaseName("openbisDB")) + creation.setQueryType(dtos.QueryType.GENERIC) + creation.setSql("select perm_id, code from projects where perm_id = ${perm_id}") + + return facade.createQueries([creation]).then(function (techIds) { + var options = new dtos.QueryExecutionOptions() + options.withParameter("perm_id", "20130412150031345-203") + + return facade.executeQuery(techIds[0], options).then(function (table) { + c.assertEqual(table.getColumns().length, 2, "Columns count") + c.assertEqual(table.getColumns()[0].getTitle(), "perm_id", "Column[0] title") + c.assertEqual(table.getColumns()[1].getTitle(), "code", "Column[1] title") + c.assertEqual(table.getRows().length, 1, "Rows count") + c.assertEqual((<openbis.TableStringCell>table.getRows()[0][0]).getValue(), "20130412150031345-203", "Value[0][0]") + c.assertEqual((<openbis.TableStringCell>table.getRows()[0][1]).getValue(), "TEST-PROJECT", "Value[0][1]") + + c.finish() + }) + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + }) + + QUnit.test("executeSql()", function (assert) { + var c = new common(assert, dtos) + c.start() + + c.login(facade) + .then(function () { + var options = new dtos.SqlExecutionOptions() + options.withDatabaseId(new dtos.QueryDatabaseName("openbisDB")) + options.withParameter("perm_id", "20130412150031345-203") + + return facade.executeSql("select perm_id, code from projects where perm_id = ${perm_id}", options).then(function (table) { + c.assertEqual(table.getColumns().length, 2, "Columns count") + c.assertEqual(table.getColumns()[0].getTitle(), "perm_id", "Column[0] title") + c.assertEqual(table.getColumns()[1].getTitle(), "code", "Column[1] title") + c.assertEqual(table.getRows().length, 1, "Rows count") + c.assertEqual((<openbis.TableStringCell>table.getRows()[0][0]).getValue(), "20130412150031345-203", "Value[0][0]") + c.assertEqual((<openbis.TableStringCell>table.getRows()[0][1]).getValue(), "TEST-PROJECT", "Value[0][1]") + + c.finish() + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + }) + } + + resolve(function () { + executeModule("Execute tests (RequireJS)", new openbis(), dtos) + executeModule("Execute tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Execute tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Execute tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Execute tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Execute tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js deleted file mode 100644 index 09cacd4a70cd996f1f4096207f6ceaa5c3a63314..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.js +++ /dev/null @@ -1,251 +0,0 @@ -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], function($, _, openbis, openbisExecuteOperations, common, dtos) { - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testUpdate = function(c, entityKind, fCreate, fUpdate, fFind, freezings) { - c.start(); - - var ctx = { - facade : null, - permIds : null, - freezingMethodsByPermIds : {} - }; - - c.login(facade).then(function() { - ctx.facade = facade; - var codePrefix = c.generateId(entityKind); - var codes = []; - $.each(Object.keys(freezings), function(index, method) { - codes.push(codePrefix + "-" + method); - }); - return fCreate(facade, codes); - }).then(function(permIds) { - c.ok("Entities created: " + permIds); - ctx.permIds = permIds; - $.each(Object.keys(freezings), function(index, method) { - ctx.freezingMethodsByPermIds[permIds[index].getPermId()] = method; - }); - return fUpdate(ctx.facade, ctx.freezingMethodsByPermIds); - }).then(function() { - c.ok("Entities frozen: " + ctx.permIds); - return fFind(ctx.facade, ctx.permIds); - }).then(function(entities) { - $.each(ctx.freezingMethodsByPermIds, function(permId, method) { - var entity = entities[permId]; - $.each(freezings[method], function(flagName, expectedValue) { - var m = "is" + flagName.charAt(0).toUpperCase() + flagName.slice(1); - c.assertEqual(entity[m](), expectedValue, entity.getCode() + ": " + flagName); - }); - }); - c.finish(); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - QUnit.test("freeze spaces()", function(assert) { - var c = new common(assert, dtos); - - var fCreate = function(facade, codes) { - var creations = []; - $.each(codes, function(index, code) { - var creation = new dtos.SpaceCreation(); - creation.setCode(code); - creations.push(creation); - }); - return facade.createSpaces(creations); - } - - var fUpdate = function(facade, freezingMethodsByPermIds) { - var updates = []; - $.each(freezingMethodsByPermIds, function(permId, method) { - var update = new dtos.SpaceUpdate(); - update.setSpaceId(new dtos.SpacePermId(permId)); - update[method](); - updates.push(update); - }); - return facade.updateSpaces(updates); - } - - var fFind = function(facade, permIds) { - return facade.getSpaces(permIds, c.createSpaceFetchOptions()); - } - - - testUpdate(c, "SPACE", fCreate, fUpdate, fFind, - {"freeze" : {"frozen" : true, "frozenForProjects" : false, "frozenForSamples" : false}, - "freezeForProjects" : {"frozen" : true, "frozenForProjects" : true, "frozenForSamples" : false}, - "freezeForSamples" : {"frozen" : true, "frozenForProjects" : false, "frozenForSamples" : true} - }); - }); - - QUnit.test("freeze projects()", function(assert) { - var c = new common(assert, dtos); - - var fCreate = function(facade, codes) { - var creations = []; - $.each(codes, function(index, code) { - var creation = new dtos.ProjectCreation(); - creation.setSpaceId(new dtos.SpacePermId("TEST")); - creation.setCode(code); - creations.push(creation); - }); - return facade.createProjects(creations); - } - - var fUpdate = function(facade, freezingMethodsByPermIds) { - var updates = []; - $.each(freezingMethodsByPermIds, function(permId, method) { - var update = new dtos.ProjectUpdate(); - update.setProjectId(new dtos.ProjectPermId(permId)); - update[method](); - updates.push(update); - }); - return facade.updateProjects(updates); - } - - var fFind = function(facade, permIds) { - return facade.getProjects(permIds, c.createProjectFetchOptions()); - } - - testUpdate(c, "PROJECT", fCreate, fUpdate, fFind, - {"freeze" : {"frozen" : true, "frozenForExperiments" : false, "frozenForSamples" : false}, - "freezeForExperiments" : {"frozen" : true, "frozenForExperiments" : true, "frozenForSamples" : false}, - "freezeForSamples" : {"frozen" : true, "frozenForExperiments" : false, "frozenForSamples" : true} - }); - }); - - QUnit.test("freeze experiments()", function(assert) { - var c = new common(assert, dtos); - - var fCreate = function(facade, codes) { - var creations = []; - $.each(codes, function(index, code) { - var creation = new dtos.ExperimentCreation(); - creation.setCode(code); - creation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING")); - creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT")); - creations.push(creation); - }); - return facade.createExperiments(creations); - } - - var fUpdate = function(facade, freezingMethodsByPermIds) { - var updates = []; - $.each(freezingMethodsByPermIds, function(permId, method) { - var update = new dtos.ExperimentUpdate(); - update.setExperimentId(new dtos.ExperimentPermId(permId)); - update[method](); - updates.push(update); - }); - return facade.updateExperiments(updates); - } - - var fFind = function(facade, permIds) { - return facade.getExperiments(permIds, c.createExperimentFetchOptions()); - } - - testUpdate(c, "EXPERIMENT", fCreate, fUpdate, fFind, - {"freeze" : {"frozen" : true, "frozenForDataSets" : false, "frozenForSamples" : false}, - "freezeForDataSets" : {"frozen" : true, "frozenForDataSets" : true, "frozenForSamples" : false}, - "freezeForSamples" : {"frozen" : true, "frozenForDataSets" : false, "frozenForSamples" : true} - }); - }); - - QUnit.test("freeze samples()", function(assert) { - var c = new common(assert, dtos); - - var fCreate = function(facade, codes) { - var creations = []; - $.each(codes, function(index, code) { - var creation = new dtos.SampleCreation(); - creation.setSpaceId(new dtos.SpacePermId("TEST")); - creation.setCode(code); - creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN")); - creations.push(creation); - }); - return facade.createSamples(creations); - } - - var fUpdate = function(facade, freezingMethodsByPermIds) { - var updates = []; - $.each(freezingMethodsByPermIds, function(permId, method) { - var update = new dtos.SampleUpdate(); - update.setSampleId(new dtos.SamplePermId(permId)); - update[method](); - updates.push(update); - }); - return facade.updateSamples(updates); - } - - var fFind = function(facade, permIds) { - return facade.getSamples(permIds, c.createSampleFetchOptions()); - } - - testUpdate(c, "SAMPLE", fCreate, fUpdate, fFind, - {"freeze" : {"frozen" : true, "frozenForDataSets" : false, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForDataSets" : {"frozen" : true, "frozenForDataSets" : true, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForComponents" : {"frozen" : true, "frozenForDataSets" : false, "frozenForComponents" : true, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForChildren" : {"frozen" : true, "frozenForDataSets" : false, "frozenForComponents" : false, - "frozenForChildren" : true, "frozenForParents" : false}, - "freezeForParents" : {"frozen" : true, "frozenForDataSets" : false, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : true} - }); - }); - - QUnit.test("freeze data sets()", function(assert) { - var c = new common(assert, dtos); - - var fCreate = function(facade, codes) { - var creations = []; - $.each(codes, function(index, code) { - creations.push(c.createDataSet(facade, "UNKNOWN")); - }); - return $.when.apply($, creations).then(function(){ - return Array.prototype.slice.call(arguments); - }); - } - - var fUpdate = function(facade, freezingMethodsByPermIds) { - var updates = []; - $.each(freezingMethodsByPermIds, function(permId, method) { - var update = new dtos.DataSetUpdate(); - update.setDataSetId(new dtos.DataSetPermId(permId)); - update[method](); - updates.push(update); - }); - return facade.updateDataSets(updates); - } - - var fFind = function(facade, permIds) { - return facade.getDataSets(permIds, c.createDataSetFetchOptions()); - } - - testUpdate(c, "DATA_SET", fCreate, fUpdate, fFind, - {"freeze" : {"frozen" : true, "frozenForContainers" : false, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForContainers" : {"frozen" : true, "frozenForContainers" : true, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForComponents" : {"frozen" : true, "frozenForContainers" : false, "frozenForComponents" : true, - "frozenForChildren" : false, "frozenForParents" : false}, - "freezeForChildren" : {"frozen" : true, "frozenForContainers" : false, "frozenForComponents" : false, - "frozenForChildren" : true, "frozenForParents" : false}, - "freezeForParents" : {"frozen" : true, "frozenForContainers" : false, "frozenForComponents" : false, - "frozenForChildren" : false, "frozenForParents" : true} - }); - }); -} - - return function() { - executeModule("Freezing tests (RequireJS)", new openbis(), dtos); - executeModule("Freezing tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Freezing tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Freezing tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Freezing tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Freezing tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } -}); diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.ts new file mode 100644 index 0000000000000000000000000000000000000000..1fb67c443ecb76283b5fe18c7738d97d710f7d07 --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-freezing.ts @@ -0,0 +1,318 @@ +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testUpdate = function (c, entityKind, fCreate, fUpdate, fFind, freezings) { + c.start() + + var ctx = { + facade: null, + permIds: null, + freezingMethodsByPermIds: {}, + } + + c.login(facade) + .then(function () { + ctx.facade = facade + var codePrefix = c.generateId(entityKind) + var codes = [] + $.each(Object.keys(freezings), function (index, method) { + codes.push(codePrefix + "-" + method) + }) + return fCreate(facade, codes) + }) + .then(function (permIds) { + c.ok("Entities created: " + permIds) + ctx.permIds = permIds + $.each(Object.keys(freezings), function (index, method) { + ctx.freezingMethodsByPermIds[permIds[index].getPermId()] = method + }) + return fUpdate(ctx.facade, ctx.freezingMethodsByPermIds) + }) + .then(function () { + c.ok("Entities frozen: " + ctx.permIds) + return fFind(ctx.facade, ctx.permIds) + }) + .then(function (entities) { + $.each(ctx.freezingMethodsByPermIds, function (permId, method) { + var entity = entities[permId] + $.each(freezings[method], function (flagName, expectedValue) { + var m = "is" + flagName.charAt(0).toUpperCase() + flagName.slice(1) + c.assertEqual(entity[m](), expectedValue, entity.getCode() + ": " + flagName) + }) + }) + c.finish() + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("freeze spaces()", function (assert) { + var c = new common(assert, dtos) + + var fCreate = function (facade: openbis.openbis, codes: string[]) { + var creations: openbis.SpaceCreation[] = [] + $.each(codes, function (index: number, code: string) { + var creation = new dtos.SpaceCreation() + creation.setCode(code) + creations.push(creation) + }) + return facade.createSpaces(creations) + } + + var fUpdate = function (facade: openbis.openbis, freezingMethodsByPermIds: { [index: string]: string }) { + var updates: openbis.SpaceUpdate[] = [] + $.each(freezingMethodsByPermIds, function (permId: string, method: string) { + var update = new dtos.SpaceUpdate() + update.setSpaceId(new dtos.SpacePermId(permId)) + update[method]() + updates.push(update) + }) + return facade.updateSpaces(updates) + } + + var fFind = function (facade: openbis.openbis, permIds: openbis.SpacePermId[]) { + return facade.getSpaces(permIds, c.createSpaceFetchOptions()) + } + + testUpdate(c, "SPACE", fCreate, fUpdate, fFind, { + freeze: { frozen: true, frozenForProjects: false, frozenForSamples: false }, + freezeForProjects: { frozen: true, frozenForProjects: true, frozenForSamples: false }, + freezeForSamples: { frozen: true, frozenForProjects: false, frozenForSamples: true }, + }) + }) + + QUnit.test("freeze projects()", function (assert) { + var c = new common(assert, dtos) + + var fCreate = function (facade: openbis.openbis, codes: string[]) { + var creations = [] + $.each(codes, function (index: number, code: string) { + var creation = new dtos.ProjectCreation() + creation.setSpaceId(new dtos.SpacePermId("TEST")) + creation.setCode(code) + creations.push(creation) + }) + return facade.createProjects(creations) + } + + var fUpdate = function (facade: openbis.openbis, freezingMethodsByPermIds: { [index: string]: string }) { + var updates: openbis.ProjectUpdate[] = [] + $.each(freezingMethodsByPermIds, function (permId: string, method: string) { + var update = new dtos.ProjectUpdate() + update.setProjectId(new dtos.ProjectPermId(permId)) + update[method]() + updates.push(update) + }) + return facade.updateProjects(updates) + } + + var fFind = function (facade: openbis.openbis, permIds: openbis.ProjectPermId[]) { + return facade.getProjects(permIds, c.createProjectFetchOptions()) + } + + testUpdate(c, "PROJECT", fCreate, fUpdate, fFind, { + freeze: { frozen: true, frozenForExperiments: false, frozenForSamples: false }, + freezeForExperiments: { frozen: true, frozenForExperiments: true, frozenForSamples: false }, + freezeForSamples: { frozen: true, frozenForExperiments: false, frozenForSamples: true }, + }) + }) + + QUnit.test("freeze experiments()", function (assert) { + var c = new common(assert, dtos) + + var fCreate = function (facade: openbis.openbis, codes: string[]) { + var creations: openbis.ExperimentCreation[] = [] + $.each(codes, function (index: number, code: string) { + var creation = new dtos.ExperimentCreation() + creation.setCode(code) + creation.setTypeId(new dtos.EntityTypePermId("HT_SEQUENCING")) + creation.setProjectId(new dtos.ProjectIdentifier("/TEST/TEST-PROJECT")) + creations.push(creation) + }) + return facade.createExperiments(creations) + } + + var fUpdate = function (facade: openbis.openbis, freezingMethodsByPermIds: { [index: string]: string }) { + var updates: openbis.ExperimentUpdate[] = [] + $.each(freezingMethodsByPermIds, function (permId: string, method: string) { + var update = new dtos.ExperimentUpdate() + update.setExperimentId(new dtos.ExperimentPermId(permId)) + update[method]() + updates.push(update) + }) + return facade.updateExperiments(updates) + } + + var fFind = function (facade: openbis.openbis, permIds: openbis.ExperimentPermId[]) { + return facade.getExperiments(permIds, c.createExperimentFetchOptions()) + } + + testUpdate(c, "EXPERIMENT", fCreate, fUpdate, fFind, { + freeze: { frozen: true, frozenForDataSets: false, frozenForSamples: false }, + freezeForDataSets: { frozen: true, frozenForDataSets: true, frozenForSamples: false }, + freezeForSamples: { frozen: true, frozenForDataSets: false, frozenForSamples: true }, + }) + }) + + QUnit.test("freeze samples()", function (assert) { + var c = new common(assert, dtos) + + var fCreate = function (facade: openbis.openbis, codes: string[]) { + var creations: openbis.SampleCreation[] = [] + $.each(codes, function (index: number, code: string) { + var creation = new dtos.SampleCreation() + creation.setSpaceId(new dtos.SpacePermId("TEST")) + creation.setCode(code) + creation.setTypeId(new dtos.EntityTypePermId("UNKNOWN")) + creations.push(creation) + }) + return facade.createSamples(creations) + } + + var fUpdate = function (facade: openbis.openbis, freezingMethodsByPermIds: { [index: string]: string }) { + var updates: openbis.SampleUpdate[] = [] + $.each(freezingMethodsByPermIds, function (permId: string, method: string) { + var update = new dtos.SampleUpdate() + update.setSampleId(new dtos.SamplePermId(permId)) + update[method]() + updates.push(update) + }) + return facade.updateSamples(updates) + } + + var fFind = function (facade: openbis.openbis, permIds: openbis.SamplePermId[]) { + return facade.getSamples(permIds, c.createSampleFetchOptions()) + } + + testUpdate(c, "SAMPLE", fCreate, fUpdate, fFind, { + freeze: { frozen: true, frozenForDataSets: false, frozenForComponents: false, frozenForChildren: false, frozenForParents: false }, + freezeForDataSets: { + frozen: true, + frozenForDataSets: true, + frozenForComponents: false, + frozenForChildren: false, + frozenForParents: false, + }, + freezeForComponents: { + frozen: true, + frozenForDataSets: false, + frozenForComponents: true, + frozenForChildren: false, + frozenForParents: false, + }, + freezeForChildren: { + frozen: true, + frozenForDataSets: false, + frozenForComponents: false, + frozenForChildren: true, + frozenForParents: false, + }, + freezeForParents: { + frozen: true, + frozenForDataSets: false, + frozenForComponents: false, + frozenForChildren: false, + frozenForParents: true, + }, + }) + }) + + QUnit.test("freeze data sets()", function (assert) { + var c = new common(assert, dtos) + + var fCreate = function (facade: openbis.openbis, codes: string[]) { + var creations = [] + $.each(codes, function (index: number, code: string) { + creations.push(c.createDataSet(facade, "UNKNOWN")) + }) + return $.when.apply($, creations).then(function () { + return Array.prototype.slice.call(arguments) + }) + } + + var fUpdate = function (facade: openbis.openbis, freezingMethodsByPermIds: { [index: string]: string }) { + var updates: openbis.DataSetUpdate[] = [] + $.each(freezingMethodsByPermIds, function (permId: string, method: string) { + var update = new dtos.DataSetUpdate() + update.setDataSetId(new dtos.DataSetPermId(permId)) + update[method]() + updates.push(update) + }) + return facade.updateDataSets(updates) + } + + var fFind = function (facade: openbis.openbis, permIds: openbis.DataSetPermId[]) { + return facade.getDataSets(permIds, c.createDataSetFetchOptions()) + } + + testUpdate(c, "DATA_SET", fCreate, fUpdate, fFind, { + freeze: { + frozen: true, + frozenForContainers: false, + frozenForComponents: false, + frozenForChildren: false, + frozenForParents: false, + }, + freezeForContainers: { + frozen: true, + frozenForContainers: true, + frozenForComponents: false, + frozenForChildren: false, + frozenForParents: false, + }, + freezeForComponents: { + frozen: true, + frozenForContainers: false, + frozenForComponents: true, + frozenForChildren: false, + frozenForParents: false, + }, + freezeForChildren: { + frozen: true, + frozenForContainers: false, + frozenForComponents: false, + frozenForChildren: true, + frozenForParents: false, + }, + freezeForParents: { + frozen: true, + frozenForContainers: false, + frozenForComponents: false, + frozenForChildren: false, + frozenForParents: true, + }, + }) + }) + } + + resolve(function () { + executeModule("Freezing tests (RequireJS)", new openbis(), dtos) + executeModule("Freezing tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Freezing tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Freezing tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Freezing tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Freezing tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +}) diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js deleted file mode 100644 index fb867289638cee94265d7772a08eb181d8b02fb5..0000000000000000000000000000000000000000 --- a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.js +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright ETH 2023 Zürich, Scientific IT Services - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -define([ 'jquery', 'underscore', 'openbis', 'test/openbis-execute-operations', 'test/common', 'test/dtos' ], - function($, _, openbis, openbisExecuteOperations, common, dtos) { - var fileContent = "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"; - - var executeModule = function(moduleName, facade, dtos) { - QUnit.module(moduleName); - - var testAction = function(c, fAction, fCheck) { - c.start(); - - c.login(facade).then(function() { - c.ok("Login"); - return fAction(facade).then(function(result) { - c.ok("Got results"); - var checkPromise = fCheck(facade, result); - if (checkPromise) { - checkPromise.then(function() { - c.finish() - }); - } else { - c.finish(); - } - }); - }).fail(function(error) { - c.fail(error.message); - c.finish(); - }); - } - - QUnit.test("executeImport()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var importData = new dtos.UncompressedImportData(); - importData.setFormat("XLS"); - importData.setFile(fileContent); - - var importOptions = new dtos.ImportOptions(); - importOptions.setMode("UPDATE_IF_EXISTS"); - - return facade.executeImport(importData, importOptions); - } - - var fCheck = function(facade) { - var criteria = new dtos.VocabularySearchCriteria(); - criteria.withCode().thatEquals("VOCAB"); - - var vocabularyFetchOptions = c.createVocabularyFetchOptions() - vocabularyFetchOptions.withTerms(); - - return facade.searchVocabularies(criteria, vocabularyFetchOptions).then(function(results) { - c.assertEqual(results.getTotalCount(), 1) - var vocabulary = (results.getObjects())[0]; - - c.assertEqual(vocabulary.code, "VOCAB"); - - var terms = vocabulary.getTerms(); - - c.assertEqual(terms.length, 3) - - var codes = terms.map(function(object) { - return object.code; - }).sort(); - - var labels = terms.map(function(object) { - return object.label; - }).sort(); - - c.assertEqual(codes[0], "TERM_A"); - c.assertEqual(codes[1], "TERM_B"); - c.assertEqual(codes[2], "TERM_C"); - - c.assertEqual(labels[0], "A"); - c.assertEqual(labels[1], "B"); - c.assertEqual(labels[2], "C"); - }).fail(function(error) { - c.fail("Error searching vocabularies. error=" + error.message); - }); - } - - testAction(c, fAction, fCheck); - }); - - QUnit.test("executeExport()", function(assert) { - var c = new common(assert, dtos); - - var fAction = function(facade) { - var exportablePermId = new dtos.ExportablePermId( - dtos.ExportableKind.SAMPLE, new dtos.SamplePermId("200902091225616-1027")); - var exportData = new dtos.ExportData(exportablePermId, - new dtos.AllFields()); - - var exportOptions = new dtos.ExportOptions( - [dtos.ExportFormat.XLSX, dtos.ExportFormat.HTML, dtos.ExportFormat.PDF, - dtos.ExportFormat.DATA], dtos.XlsTextFormat.RICH, true, false, true); - - return facade.executeExport(exportData, exportOptions); - } - - var fCheck = function(facade, result) { - c.assertNotNull(result); - if (!result.downloadURL) { - c.assertNotNull(result.results); - c.assertEqual(result.results.length, 1); - c.assertNotNull(result.results[0].exportResult); - c.assertNotNull(result.results[0].exportResult.downloadURL); - } - - return null; - } - - testAction(c, fAction, fCheck); - }); - } - - return function() { - executeModule("Export/import tests (RequireJS)", new openbis(), dtos); - executeModule("Export/import tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos); - executeModule("Export/import tests (module VAR)", new window.openbis.openbis(), window.openbis); - executeModule("Export/import tests (module VAR - executeOperations)", new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), window.openbis); - executeModule("Export/import tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM); - executeModule("Export/import tests (module ESM - executeOperations)", new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), window.openbisESM); - } - }); diff --git a/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.ts b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.ts new file mode 100644 index 0000000000000000000000000000000000000000..527fe1992abe58abcc4129e3ed37c89676622faa --- /dev/null +++ b/test-api-openbis-javascript/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-import-export.ts @@ -0,0 +1,219 @@ +/* + * Copyright ETH 2023 Zürich, Scientific IT Services + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +import openbis from "./lib/openbis/openbis.esm" + +exports.default = new Promise((resolve) => { + require(["jquery", "underscore", "openbis", "test/openbis-execute-operations", "test/common", "test/dtos"], function ( + $, + _, + openbis, + openbisExecuteOperations, + common, + dtos + ) { + var fileContent = + "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" + + var executeModule = function (moduleName: string, facade: openbis.openbis, dtos: openbis.bundle) { + QUnit.module(moduleName) + + var testAction = function (c, fAction, fCheck) { + c.start() + + c.login(facade) + .then(function () { + c.ok("Login") + return fAction(facade).then(function (result) { + c.ok("Got results") + var checkPromise = fCheck(facade, result) + if (checkPromise) { + checkPromise.then(function () { + c.finish() + }) + } else { + c.finish() + } + }) + }) + .fail(function (error) { + c.fail(error.message) + c.finish() + }) + } + + QUnit.test("executeImport()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var importData = new dtos.UncompressedImportData() + importData.setFormat("XLS") + importData.setFile(fileContent) + + var importOptions = new dtos.ImportOptions() + importOptions.setMode("UPDATE_IF_EXISTS") + + return facade.executeImport(importData, importOptions) + } + + var fCheck = function (facade: openbis.openbis) { + var criteria = new dtos.VocabularySearchCriteria() + criteria.withCode().thatEquals("VOCAB") + + var vocabularyFetchOptions = c.createVocabularyFetchOptions() + vocabularyFetchOptions.withTerms() + + return facade.searchVocabularies(criteria, vocabularyFetchOptions).then( + function (results) { + c.assertEqual(results.getTotalCount(), 1) + var vocabulary = results.getObjects()[0] + + c.assertEqual(vocabulary.getCode(), "VOCAB") + + var terms = vocabulary.getTerms() + + c.assertEqual(terms.length, 3) + + var codes = terms + .map(function (object) { + return object.getCode() + }) + .sort() + + var labels = terms + .map(function (object) { + return object.getLabel() + }) + .sort() + + c.assertEqual(codes[0], "TERM_A") + c.assertEqual(codes[1], "TERM_B") + c.assertEqual(codes[2], "TERM_C") + + c.assertEqual(labels[0], "A") + c.assertEqual(labels[1], "B") + c.assertEqual(labels[2], "C") + }, + function (error) { + c.fail("Error searching vocabularies. error=" + error.message) + } + ) + } + + testAction(c, fAction, fCheck) + }) + + QUnit.test("executeExport()", function (assert) { + var c = new common(assert, dtos) + + var fAction = function (facade: openbis.openbis) { + var exportablePermId = new dtos.ExportablePermId(dtos.ExportableKind.SAMPLE, new dtos.SamplePermId("200902091225616-1027")) + var exportData = new dtos.ExportData([exportablePermId], new dtos.AllFields()) + + var exportOptions = new dtos.ExportOptions( + [dtos.ExportFormat.XLSX, dtos.ExportFormat.HTML, dtos.ExportFormat.PDF, dtos.ExportFormat.DATA], + dtos.XlsTextFormat.RICH, + true, + false, + true + ) + + return facade.executeExport(exportData, exportOptions) + } + + var fCheck = function (facade: openbis.openbis, result: openbis.ExportResult) { + c.assertNotNull(result) + c.assertNotNull(result.getDownloadURL()) + return null + } + + testAction(c, fAction, fCheck) + }) + } + + resolve(function () { + executeModule("Export/import tests (RequireJS)", new openbis(), dtos) + executeModule("Export/import tests (RequireJS - executeOperations)", new openbisExecuteOperations(new openbis(), dtos), dtos) + executeModule("Export/import tests (module VAR)", new window.openbis.openbis(), window.openbis) + executeModule( + "Export/import tests (module VAR - executeOperations)", + new openbisExecuteOperations(new window.openbis.openbis(), window.openbis), + window.openbis + ) + executeModule("Export/import tests (module ESM)", new window.openbisESM.openbis(), window.openbisESM) + executeModule( + "Export/import tests (module ESM - executeOperations)", + new openbisExecuteOperations(new window.openbisESM.openbis(), window.openbisESM), + window.openbisESM + ) + }) + }) +})