Skip to content

Commit

Permalink
SBVT-1619: Send error to backend if S3 image upload fails (#141)
Browse files Browse the repository at this point in the history
* SBVT-1619: send s3 error message if image upload fails

* SBVT-1619: fixing the errorMessage

* SBVT-1619: updating pino

* SBVT-1619: updating pino

---------

Co-authored-by: trevor.nelms <[email protected]>
  • Loading branch information
tnelms1 and trevor.nelms committed Jul 28, 2023
1 parent b3b5d00 commit 5b477b2
Show file tree
Hide file tree
Showing 4 changed files with 212 additions and 205 deletions.
54 changes: 38 additions & 16 deletions commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ let sendImageApiJSON = () => {
} else {
apiRes.imageApiResult = response.data;
uploadDomToS3(response.data.domUploadUrl, response.data.imageId);
uploadImageToS3(response.data.uploadUrl);
uploadImageToS3(response.data.uploadUrl, response.data.imageId);
}
});
};
Expand All @@ -335,23 +335,26 @@ let uploadDomToS3 = async (url, imageId) => {
url: url,
failOnStatusCode: false,
body: JSON.stringify(dom)

}).then((response) => {
cy.task('logger', {type: 'info', message: `DOM s3 POST response ${response.status}`})
cy.request({
method: "PATCH",
url: `${vtConfFile.url}/api/v1/projects/${vtConfFile.projectId}/testruns/${vtConfFile.testRunId}/images/${imageId}`,
failOnStatusCode: false,
headers: {Authorization : `Bearer ${vtConfFile.projectToken}`},
body: {
domCaptured: true
}
}).then((response) => {
cy.task('logger', {type: 'info', message: `after s3 dom upload, image PATCH response ${response.status}`})
})
if (response.status < 200 || response.status >= 300) {
s3ErrorPatch(response, imageId)
} else {
cy.task('logger', {type: 'info', message: `DOM s3 POST response ${response.status}`})
cy.request({
method: "PATCH",
url: `${vtConfFile.url}/api/v1/projects/${vtConfFile.projectId}/testruns/${vtConfFile.testRunId}/images/${imageId}`,
failOnStatusCode: false,
headers: {Authorization : `Bearer ${vtConfFile.projectToken}`},
body: {
domCaptured: true
}
}).then((patchResponse) => {
cy.task('logger', {type: 'info', message: `after s3 dom upload, image PATCH response ${patchResponse.status}`})
})
}
});
};
let uploadImageToS3 = async (url) => {
let uploadImageToS3 = async (url, imageId) => {
cy.task('logger', {type: 'trace', message: `Starting the cy.request image S3 PUT now`});
cy.request({
method: "PUT",
Expand All @@ -360,9 +363,28 @@ let uploadImageToS3 = async (url) => {
failOnStatusCode: false,
body: blobData
}).then((response) => {
cy.task('logger', {type: 'info', message: `image S3 POST response ${response.status}`})
if (response.status < 200 || response.status >= 300) {
s3ErrorPatch(response, imageId)
} else {
cy.task('logger', {type: 'info', message: `image S3 post was successful, response: ${response.status}`})
}
});
};
const s3ErrorPatch = (response, imageId) => {
cy.task('logger', {type: 'error', message: `Failed S3 PUT status: ${response.status}`})
cy.task('logger', {type: 'info', message: `Going to PATCH the image at url: ${vtConfFile.url}/api/v1/projects/${vtConfFile.projectId}/testruns/${vtConfFile.testRunId}/images/${imageId}`})
cy.request({
method: "PATCH",
url: `${vtConfFile.url}/api/v1/projects/${vtConfFile.projectId}/testruns/${vtConfFile.testRunId}/images/${imageId}`,
failOnStatusCode: false,
headers: {Authorization : `Bearer ${vtConfFile.projectToken}`},
body: {
errorMessage: JSON.stringify(response)
}
}).then((response) => {
cy.task('logger', {type: 'info', message: `after s3 image upload -> image PATCH response: ${response.status}`})
})
}
let readImageAndBase64ToBlob = () => {
cy.readFile(picProps.path, "base64").then((file) => {
blobData = Cypress.Blob.base64StringToBlob(file, 'image/png');
Expand Down
Loading

0 comments on commit 5b477b2

Please sign in to comment.