Page MenuHomeSoftware Heritage

D3429.diff
No OneTemporary

D3429.diff

diff --git a/cypress/integration/origin-save.spec.js b/cypress/integration/origin-save.spec.js
--- a/cypress/integration/origin-save.spec.js
+++ b/cypress/integration/origin-save.spec.js
@@ -19,10 +19,10 @@
};
function makeOriginSaveRequest(originType, originUrl) {
- cy.get('#swh-input-visit-type')
- .select(originType)
- .get('#swh-input-origin-url')
+ cy.get('#swh-input-origin-url')
.type(originUrl)
+ .get('#swh-input-visit-type')
+ .select(originType)
.get('#swh-save-origin-form')
.submit();
}
@@ -74,6 +74,8 @@
});
beforeEach(function() {
+ cy.fixture('origin-save').as('originSaveJSON');
+ cy.fixture('save-task-info').as('saveTaskInfoJSON');
cy.visit(url);
cy.server();
});
@@ -159,7 +161,6 @@
});
it('should display origin save info in the requests table', function() {
- cy.fixture('origin-save').as('originSaveJSON');
cy.route('GET', '/save/requests/list/**', '@originSaveJSON');
cy.get('#swh-origin-save-requests-list-tab').click();
cy.get('tbody tr').then(rows => {
@@ -189,8 +190,6 @@
});
it('should display/close task info popover when clicking on the info button', function() {
- cy.fixture('origin-save').as('originSaveJSON');
- cy.fixture('save-task-info').as('saveTaskInfoJSON');
cy.route('GET', '/save/requests/list/**', '@originSaveJSON');
cy.route('GET', '/save/task/info/**', '@saveTaskInfoJSON');
@@ -211,8 +210,6 @@
});
it('should hide task info popover when clicking on the close button', function() {
- cy.fixture('origin-save').as('originSaveJSON');
- cy.fixture('save-task-info').as('saveTaskInfoJSON');
cy.route('GET', '/save/requests/list/**', '@originSaveJSON');
cy.route('GET', '/save/task/info/**', '@saveTaskInfoJSON');
@@ -232,7 +229,6 @@
});
it('should fill save request form when clicking on "Save again" button', function() {
- cy.fixture('origin-save').as('originSaveJSON');
cy.route('GET', '/save/requests/list/**', '@originSaveJSON');
cy.get('#swh-origin-save-requests-list-tab').click();
@@ -248,4 +244,32 @@
.should('have.value', $(cells[2]).text().slice(0, -1));
});
});
+
+ it('should select correct origin type if possible when clicking on "Save again" button', function() {
+ const originUrl = 'https://gitlab.inria.fr/solverstack/maphys/maphys/';
+ const badOriginType = 'hg';
+ const goodOriginType = 'git';
+ cy.route('GET', '/save/requests/list/**', '@originSaveJSON');
+ stubSaveRequest(this.Urls.origin_save_request(badOriginType, originUrl),
+ badOriginType, 'accepted',
+ originUrl, 'failed', 200, saveCodeMsg['accepted']);
+
+ makeOriginSaveRequest(badOriginType, originUrl);
+
+ cy.get('#swh-origin-save-requests-list-tab').click();
+ cy.wait('@saveRequest').then(() => {
+ cy.get('.swh-save-origin-again')
+ .eq(0)
+ .click();
+
+ cy.get('tbody tr').eq(0).then(row => {
+ const cells = row[0].cells;
+ cy.get('#swh-input-visit-type')
+ .should('have.value', goodOriginType);
+ cy.get('#swh-input-origin-url')
+ .should('have.value', $(cells[2]).text().slice(0, -1));
+ });
+ });
+ });
+
});
diff --git a/swh/web/assets/src/bundles/save/index.js b/swh/web/assets/src/bundles/save/index.js
--- a/swh/web/assets/src/bundles/save/index.js
+++ b/swh/web/assets/src/bundles/save/index.js
@@ -448,12 +448,22 @@
}
export function fillSaveRequestFormAndScroll(visitType, originUrl) {
+ $('#swh-input-origin-url').val(originUrl);
+ let originTypeFound = false;
$('#swh-input-visit-type option').each(function() {
let val = $(this).val();
- if (val === visitType) {
+ if (val && originUrl.includes(val)) {
$(this).prop('selected', true);
+ originTypeFound = true;
}
});
- $('#swh-input-origin-url').val(originUrl);
+ if (!originTypeFound) {
+ $('#swh-input-visit-type option').each(function() {
+ let val = $(this).val();
+ if (val === visitType) {
+ $(this).prop('selected', true);
+ }
+ });
+ }
window.scrollTo(0, 0);
}

File Metadata

Mime Type
text/plain
Expires
Dec 21 2024, 9:45 AM (11 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3219475

Event Timeline