Changeset View
Changeset View
Standalone View
Standalone View
cypress/e2e/origin-save.cy.js
Show First 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | function stubSaveRequest({ | ||||
saveRequestStatus, | saveRequestStatus, | ||||
originUrl, | originUrl, | ||||
saveTaskStatus, | saveTaskStatus, | ||||
responseStatus = 200, | responseStatus = 200, | ||||
// For error code with the error message in the 'reason' key response | // For error code with the error message in the 'reason' key response | ||||
errorMessage = '', | errorMessage = '', | ||||
saveRequestDate = new Date(), | saveRequestDate = new Date(), | ||||
visitDate = new Date(), | visitDate = new Date(), | ||||
visitStatus = null | visitStatus = null, | ||||
fromWebhook = false | |||||
} = {}) { | } = {}) { | ||||
let response; | let response; | ||||
if (responseStatus !== 200 && errorMessage) { | if (responseStatus !== 200 && errorMessage) { | ||||
response = { | response = { | ||||
'reason': errorMessage | 'reason': errorMessage | ||||
}; | }; | ||||
} else { | } else { | ||||
response = genOriginSaveResponse({visitType: visitType, | response = genOriginSaveResponse({visitType: visitType, | ||||
saveRequestStatus: saveRequestStatus, | saveRequestStatus: saveRequestStatus, | ||||
originUrl: originUrl, | originUrl: originUrl, | ||||
saveRequestDate: saveRequestDate, | saveRequestDate: saveRequestDate, | ||||
saveTaskStatus: saveTaskStatus, | saveTaskStatus: saveTaskStatus, | ||||
visitDate: visitDate, | visitDate: visitDate, | ||||
visitStatus: visitStatus | visitStatus: visitStatus, | ||||
fromWebhook: fromWebhook | |||||
}); | }); | ||||
} | } | ||||
cy.intercept('POST', requestUrl, {body: response, statusCode: responseStatus}) | cy.intercept('POST', requestUrl, {body: response, statusCode: responseStatus}) | ||||
.as('saveRequest'); | .as('saveRequest'); | ||||
} | } | ||||
// Mocks API response : /save/(:visit_type)/(:origin_url) | // Mocks API response : /save/(:visit_type)/(:origin_url) | ||||
// visit_type : {'git', 'hg', 'svn', ...} | // visit_type : {'git', 'hg', 'svn', ...} | ||||
function genOriginSaveResponse({ | function genOriginSaveResponse({ | ||||
visitType = 'git', | visitType = 'git', | ||||
saveRequestStatus, | saveRequestStatus, | ||||
originUrl, | originUrl, | ||||
saveRequestDate = new Date(), | saveRequestDate = new Date(), | ||||
saveTaskStatus, | saveTaskStatus, | ||||
visitDate = new Date(), | visitDate = new Date(), | ||||
visitStatus | visitStatus, | ||||
fromWebhook = false | |||||
} = {}) { | } = {}) { | ||||
return { | return { | ||||
'visit_type': visitType, | 'visit_type': visitType, | ||||
'save_request_status': saveRequestStatus, | 'save_request_status': saveRequestStatus, | ||||
'origin_url': originUrl, | 'origin_url': originUrl, | ||||
'id': 1, | 'id': 1, | ||||
'save_request_date': saveRequestDate ? saveRequestDate.toISOString() : null, | 'save_request_date': saveRequestDate ? saveRequestDate.toISOString() : null, | ||||
'save_task_status': saveTaskStatus, | 'save_task_status': saveTaskStatus, | ||||
'visit_date': visitDate ? visitDate.toISOString() : null, | 'visit_date': visitDate ? visitDate.toISOString() : null, | ||||
'visit_status': visitStatus | 'visit_status': visitStatus, | ||||
'from_webhook': fromWebhook | |||||
}; | }; | ||||
}; | }; | ||||
function loadSaveRequestsListPage() { | function loadSaveRequestsListPage() { | ||||
// click on tab to visit requests list page | // click on tab to visit requests list page | ||||
cy.get('#swh-origin-save-requests-list-tab').click(); | cy.get('#swh-origin-save-requests-list-tab').click(); | ||||
// two XHR requests are sent by datatables when initializing requests table | // two XHR requests are sent by datatables when initializing requests table | ||||
cy.wait(['@saveRequestsList', '@saveRequestsList']); | cy.wait(['@saveRequestsList', '@saveRequestsList']); | ||||
▲ Show 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | cy.get('tbody tr').then(rows => { | ||||
assert.equal($(cells[2]).html(), html); | assert.equal($(cells[2]).html(), html); | ||||
assert.equal($(cells[3]).text(), this.originSaveJSON.data[i].save_request_status); | assert.equal($(cells[3]).text(), this.originSaveJSON.data[i].save_request_status); | ||||
assert.equal($(cells[4]).text(), saveStatus); | assert.equal($(cells[4]).text(), saveStatus); | ||||
++i; | ++i; | ||||
} | } | ||||
}); | }); | ||||
}); | }); | ||||
it('should display webhook icon when request was created from forge webhook receiver', function() { | |||||
const originUrl = 'https://git.example.org/example.git'; | |||||
const saveRequestData = genOriginSaveResponse({ | |||||
saveRequestStatus: 'accepted', | |||||
originUrl: originUrl, | |||||
saveTaskStatus: 'succeeded', | |||||
visitDate: null, | |||||
visitStatus: 'full', | |||||
fromWebhook: true | |||||
}); | |||||
const saveRequestsListData = { | |||||
'recordsTotal': 1, | |||||
'draw': 2, | |||||
'recordsFiltered': 1, | |||||
'data': [saveRequestData] | |||||
}; | |||||
cy.intercept('/save/requests/list/**', {body: saveRequestsListData}) | |||||
.as('saveRequestsList'); | |||||
loadSaveRequestsListPage(); | |||||
cy.get('tbody tr').then(rows => { | |||||
const firstRowCells = rows[0].cells; | |||||
expect($(firstRowCells[5]).html()).to.contain.string('mdi-webhook'); | |||||
}); | |||||
}); | |||||
it('should not add timestamp to the browse origin URL is no visit date has been found', function() { | it('should not add timestamp to the browse origin URL is no visit date has been found', function() { | ||||
const originUrl = 'https://git.example.org/example.git'; | const originUrl = 'https://git.example.org/example.git'; | ||||
const saveRequestData = genOriginSaveResponse({ | const saveRequestData = genOriginSaveResponse({ | ||||
saveRequestStatus: 'accepted', | saveRequestStatus: 'accepted', | ||||
originUrl: originUrl, | originUrl: originUrl, | ||||
saveTaskStatus: 'succeeded', | saveTaskStatus: 'succeeded', | ||||
visitDate: null, | visitDate: null, | ||||
visitStatus: 'full' | visitStatus: 'full' | ||||
▲ Show 20 Lines • Show All 555 Lines • Show Last 20 Lines |