Page MenuHomeSoftware Heritage

D4827.id.diff
No OneTemporary

D4827.id.diff

diff --git a/cypress/integration/origin-search.spec.js b/cypress/integration/origin-search.spec.js
--- a/cypress/integration/origin-search.spec.js
+++ b/cypress/integration/origin-search.spec.js
@@ -30,14 +30,15 @@
.and('contain', msg);
}
-function stubOriginVisitLatestRequests() {
+function stubOriginVisitLatestRequests(status = 200) {
cy.server();
cy.route({
method: 'GET',
url: '**/visit/latest/**',
response: {
- type: 'tar'
- }
+ type: 'git'
+ },
+ status: status
}).as('originVisitLatest');
}
@@ -52,6 +53,7 @@
});
it('should show in result when url is searched', function() {
+ stubOriginVisitLatestRequests();
cy.get('#origins-url-patterns')
.type(origin.url);
cy.get('.swh-search-icon')
@@ -72,6 +74,44 @@
.should('have.attr', 'href', browseOriginUrl);
});
+ it('should hide origin not yet archived when related option is on', function() {
+ stubOriginVisitLatestRequests(404);
+ cy.get('#origins-url-patterns')
+ .type(origin.url);
+ cy.get('.swh-search-icon')
+ .click();
+ cy.wait('@originVisitLatest');
+
+ cy.get('#origin-search-results')
+ .should('be.visible')
+ .find('tr')
+ .should('have.length', 1);
+ });
+
+ it('should show origin not yet archived when related option is off', function() {
+ stubOriginVisitLatestRequests(404);
+ cy.get('#swh-search-origins-with-visit')
+ .uncheck({force: true});
+ cy.get('#origins-url-patterns')
+ .type(origin.url);
+ cy.get('.swh-search-icon')
+ .click();
+ cy.wait('@originVisitLatest');
+
+ cy.get('#origin-search-results')
+ .should('be.visible')
+ .find('tr')
+ .should('have.length', 2);
+
+ cy.contains('tr', origin.url)
+ .should('be.visible')
+ .find('.swh-visit-status')
+ .find('i')
+ .should('have.class', 'mdi-close-thick')
+ .and('have.attr', 'title',
+ 'Software origin archival by Software Heritage is pending');
+ });
+
it('should show not found message when no repo matches', function() {
searchShouldShowNotFound(nonExistentText,
'No origins matching the search criteria were found.');
diff --git a/swh/web/assets/src/bundles/browse/origin-search.js b/swh/web/assets/src/bundles/browse/origin-search.js
--- a/swh/web/assets/src/bundles/browse/origin-search.js
+++ b/swh/web/assets/src/bundles/browse/origin-search.js
@@ -55,6 +55,7 @@
let latestSnapshotUrl = Urls.api_1_origin_visit_latest(origin.url);
latestSnapshotUrl += '?require_snapshot=true';
fetch(latestSnapshotUrl)
+ .then(handleFetchError)
.then(response => response.json())
.then(data => {
$(`#visit-type-origin-${i}`).html(data.type);
@@ -71,6 +72,20 @@
$(`#origin-${i}`).remove();
}
}
+ })
+ .catch(response => {
+ if (response.status !== 404) {
+ return;
+ }
+ // origin has not yet been archived by Software Heritage
+ if ($('#swh-search-origins-with-visit').prop('checked')) {
+ $(`#origin-${i}`).remove();
+ } else {
+ $(`#visit-type-origin-${i}`).html('???');
+ $(`#visit-status-origin-${i}`).html(
+ '<i title="Software origin archival by Software Heritage is pending" ' +
+ 'class="mdi mdi-close-thick mdi-fw"></i>Pending archival');
+ }
});
}
fixTableRowsStyle();

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 3, 3:20 PM (6 d, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224076

Event Timeline