Skip to content

Commit

Permalink
Merge pull request #1598 from AtlasOfLivingAustralia/feature/issues1597
Browse files Browse the repository at this point in the history
- #1597 fixes site controller to return JSON values
  • Loading branch information
temi committed Jun 11, 2024
2 parents 355fc91 + c349968 commit 56bf725
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT

@SSO
class SiteController {

private static APPLICATION_JSON = 'application/json'
def siteService, projectService, projectActivityService, activityService, metadataService, userService,
searchService, importService, webService

Expand Down Expand Up @@ -400,10 +400,10 @@ class SiteController {

if (!error) {
progress.finished = true
render([message: 'success', progress: progress]) as JSON
render(text: [message: 'success', progress: progress] as JSON, contentType: APPLICATION_JSON)
} else {
progress.finished = false
render([message: 'error', progress: progress, error: error]) as JSON
render(text: [message: 'error', progress: progress, error: error] as JSON, contentType: APPLICATION_JSON)
}
}

Expand Down
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
},
"devDependencies": {
"@metahub/karma-jasmine-jquery": "^2.0.1",
"chromedriver": "^123.0.3",
"chromedriver": "^125.0.3",
"jasmine-core": "^3.5.0",
"jasmine-jquery": "^2.0.0",
"jquery": "^3.4.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,75 @@ class SiteControllerSpec extends Specification implements ControllerUnitTest<Sit
response.json.size() == 1
response.json[0].poi[0].docs.documents.size() == 1
}

void "test createSitesFromShapefile - success"() {
given:
def siteData = [
shapeFileId: 1,
projectId : 1,
sites : [
[id: 1, externalId: "ext1", name: "Site 1", description: "Description 1"],
[id: 2, externalId: "ext2", name: "Site 2", description: "Description 2"]
]
]
request.JSON = siteData

when:
siteService.createSiteFromUploadedShapefile(_, _, _, _, _, _, _) >> null
controller.createSitesFromShapefile()

then:
response.json.message == 'success'
response.json.progress.total == 2
response.json.progress.uploaded == 2
response.json.progress.finished == true
}

void "test createSitesFromShapefile - partial success"() {
given:
def siteData = [
shapeFileId: 1,
projectId : 1,
sites : [
[id: 1, externalId: "ext1", name: "Site 1", description: "Description 1"],
[id: 2, externalId: "ext2", name: "Site 2", description: "Description 2"]
]
]
request.JSON = siteData

when:
siteService.createSiteFromUploadedShapefile(_, _, _, _, _, _, _) >>> [null, "Error creating site"]
controller.createSitesFromShapefile()

then:
response.json.message == 'error'
response.json.progress.total == 2
response.json.progress.uploaded == 1
response.json.progress.finished == false
response.json.error == "Error creating site"
}

void "test createSitesFromShapefile - exception"() {
given:
def siteData = [
shapeFileId: 1,
projectId : 1,
sites : [
[id: 1, externalId: "ext1", name: "Site 1", description: "Description 1"],
[id: 2, externalId: "ext2", name: "Site 2", description: "Description 2"]
]
]
request.JSON = siteData

when:
siteService.createSiteFromUploadedShapefile(_, _, _, _, _, _, _) >> { throw new Exception("Unexpected error") }
controller.createSitesFromShapefile()

then:
response.json.message == 'error'
response.json.progress.total == 2
response.json.progress.uploaded == 0
response.json.progress.finished == false
response.json.error == "Error uploading sites, please try again later"
}
}

0 comments on commit 56bf725

Please sign in to comment.