Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9349679
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
9 KB
Subscribers
None
View Options
diff --git a/cypress/integration/errors.spec.js b/cypress/integration/errors.spec.js
index a2e8cdf27..23fe22787 100644
--- a/cypress/integration/errors.spec.js
+++ b/cypress/integration/errors.spec.js
@@ -1,153 +1,155 @@
/**
* Copyright (C) 2019 The Software Heritage developers
* See the AUTHORS file at the top-level directory of this distribution
* License: GNU Affero General Public License version 3, or any later version
* See top-level LICENSE file for more information
*/
import {httpGetJson} from '../utils';
const unarchivedRepo = {
url: 'https://github.com/SoftwareHeritage/swh-web',
revisionSha1git: '7bf1b2f489f16253527807baead7957ca9e8adde',
snapshotSha1git: 'd9829223095de4bb529790de8ba4e4813e38672d',
rootDirSha1git: '7d887d96c0047a77e2e8c4ee9bb1528463677663',
readmeSha1git: 'b203ec39300e5b7e97b6e20986183cbd0b797859'
};
const archivedRepo = {
url: 'https://github.com/memononen/libtess2',
invalidSubDir: 'Source1'
};
const invalidChecksum = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
const invalidPageUrl = '/invalidPath';
function urlShouldShowError(url, error) {
cy.visit(url, {
failOnStatusCode: false
});
cy.get('.swh-http-error')
.should('be.visible');
cy.get('.swh-http-error-code')
.should('contain', error.code);
cy.get('.swh-http-error-desc')
.should('contain', error.msg);
}
-describe('Test Errors for unarchived repositories', function() {
- it('should display NotFoundExc for unarchived repo', function() {
- const url = this.Urls.browse_origin_directory(unarchivedRepo.url);
+describe('Test Errors', function() {
+ context('For unarchived repositories', function() {
+ it('should display NotFoundExc for unarchived repo', function() {
+ const url = this.Urls.browse_origin_directory(unarchivedRepo.url);
- urlShouldShowError(url, {
- code: '404',
- msg: 'NotFoundExc: Origin with url ' + unarchivedRepo.url + ' not found!'
+ urlShouldShowError(url, {
+ code: '404',
+ msg: 'NotFoundExc: Origin with url ' + unarchivedRepo.url + ' not found!'
+ });
});
- });
- it('should display NotFoundExc for unarchived content', function() {
- const url = this.Urls.browse_content(`sha1_git:${unarchivedRepo.readmeSha1git}`);
+ it('should display NotFoundExc for unarchived content', function() {
+ const url = this.Urls.browse_content(`sha1_git:${unarchivedRepo.readmeSha1git}`);
- urlShouldShowError(url, {
- code: '404',
- msg: 'NotFoundExc: Content with sha1_git checksum equals to ' + unarchivedRepo.readmeSha1git + ' not found!'
+ urlShouldShowError(url, {
+ code: '404',
+ msg: 'NotFoundExc: Content with sha1_git checksum equals to ' + unarchivedRepo.readmeSha1git + ' not found!'
+ });
});
- });
- it('should display NotFoundExc for unarchived directory sha1git', function() {
- const url = this.Urls.browse_directory(unarchivedRepo.rootDirSha1git);
+ it('should display NotFoundExc for unarchived directory sha1git', function() {
+ const url = this.Urls.browse_directory(unarchivedRepo.rootDirSha1git);
- urlShouldShowError(url, {
- code: '404',
- msg: 'NotFoundExc: Directory with sha1_git ' + unarchivedRepo.rootDirSha1git + ' not found'
+ urlShouldShowError(url, {
+ code: '404',
+ msg: 'NotFoundExc: Directory with sha1_git ' + unarchivedRepo.rootDirSha1git + ' not found'
+ });
});
- });
- it('should display NotFoundExc for unarchived revision sha1git', function() {
- const url = this.Urls.browse_revision(unarchivedRepo.revisionSha1git);
+ it('should display NotFoundExc for unarchived revision sha1git', function() {
+ const url = this.Urls.browse_revision(unarchivedRepo.revisionSha1git);
- urlShouldShowError(url, {
- code: '404',
- msg: 'NotFoundExc: Revision with sha1_git ' + unarchivedRepo.revisionSha1git + ' not found.'
+ urlShouldShowError(url, {
+ code: '404',
+ msg: 'NotFoundExc: Revision with sha1_git ' + unarchivedRepo.revisionSha1git + ' not found.'
+ });
});
- });
- it('should display NotFoundExc for unarchived snapshot sha1git', function() {
- const url = this.Urls.browse_snapshot(unarchivedRepo.snapshotSha1git);
+ it('should display NotFoundExc for unarchived snapshot sha1git', function() {
+ const url = this.Urls.browse_snapshot(unarchivedRepo.snapshotSha1git);
- urlShouldShowError(url, {
- code: '404',
- msg: 'Snapshot with id ' + unarchivedRepo.snapshotSha1git + ' not found!'
+ urlShouldShowError(url, {
+ code: '404',
+ msg: 'Snapshot with id ' + unarchivedRepo.snapshotSha1git + ' not found!'
+ });
});
- });
-});
-
-describe('Test Errors for archived repositories', function() {
- before(function() {
- const url = this.Urls.browse_origin_directory(archivedRepo.url);
- cy.visit(url);
- cy.window().then(async win => {
- const metadata = win.swh.webapp.getBrowsedSwhObjectMetadata();
- const apiUrl = Cypress.config().baseUrl + this.Urls.api_1_directory(metadata.directory);
- const dirContent = await httpGetJson(apiUrl);
-
- archivedRepo.contentSha1git = dirContent.find(x => x.type === 'file').checksums.sha1_git;
- archivedRepo.directorySha1git = metadata.directory;
- });
});
- it('should display NotFoundExc for invalid directory from archived repo', function() {
- const rootDir = this.Urls.browse_origin_directory(archivedRepo.url);
- const subDir = rootDir + archivedRepo.invalidSubDir;
-
- urlShouldShowError(subDir, {
- code: '404',
- msg: 'NotFoundExc: Directory entry with path ' +
- archivedRepo.invalidSubDir + ' from ' +
- archivedRepo.directorySha1git + ' not found'
+ context('For archived repositories', function() {
+ before(function() {
+ const url = this.Urls.browse_origin_directory(archivedRepo.url);
+ cy.visit(url);
+ cy.window().then(async win => {
+ const metadata = win.swh.webapp.getBrowsedSwhObjectMetadata();
+ const apiUrl = Cypress.config().baseUrl + this.Urls.api_1_directory(metadata.directory);
+ const dirContent = await httpGetJson(apiUrl);
+
+ archivedRepo.contentSha1git = dirContent.find(x => x.type === 'file').checksums.sha1_git;
+ archivedRepo.directorySha1git = metadata.directory;
+ });
});
- });
- it(`should display NotFoundExc for incorrect origin_url
- with correct content hash`, function() {
- const url = this.Urls.browse_content(`sha1_git:${archivedRepo.contentSha1git}`) +
- `?origin_url=${unarchivedRepo.url}`;
- urlShouldShowError(url, {
- code: '404',
- msg: 'The Software Heritage archive has a content ' +
- 'with the hash you provided but the origin ' +
- 'mentioned in your request appears broken: ' +
- unarchivedRepo.url + '. ' +
- 'Please check the URL and try again.\n\n' +
- 'Nevertheless, you can still browse the content ' +
- 'without origin information: ' +
- '/browse/content/sha1_git:' +
- archivedRepo.contentSha1git + '/'
+ it('should display NotFoundExc for invalid directory from archived repo', function() {
+ const rootDir = this.Urls.browse_origin_directory(archivedRepo.url);
+ const subDir = rootDir + archivedRepo.invalidSubDir;
+
+ urlShouldShowError(subDir, {
+ code: '404',
+ msg: 'NotFoundExc: Directory entry with path ' +
+ archivedRepo.invalidSubDir + ' from ' +
+ archivedRepo.directorySha1git + ' not found'
+ });
});
- });
-});
-describe('Test errors for invalid data', function() {
- it(`should display 400 for invalid checksum for
- directory, snapshot, revision, content`, function() {
- const types = ['directory', 'snapshot', 'revision', 'content'];
- for (let type of types) {
- const url = this.Urls[`browse_${type}`](invalidChecksum);
+ it(`should display NotFoundExc for incorrect origin_url
+ with correct content hash`, function() {
+ const url = this.Urls.browse_content(`sha1_git:${archivedRepo.contentSha1git}`) +
+ `?origin_url=${unarchivedRepo.url}`;
urlShouldShowError(url, {
- code: '400',
- msg: 'BadInputExc: Invalid checksum query string ' +
- invalidChecksum
+ code: '404',
+ msg: 'The Software Heritage archive has a content ' +
+ 'with the hash you provided but the origin ' +
+ 'mentioned in your request appears broken: ' +
+ unarchivedRepo.url + '. ' +
+ 'Please check the URL and try again.\n\n' +
+ 'Nevertheless, you can still browse the content ' +
+ 'without origin information: ' +
+ '/browse/content/sha1_git:' +
+ archivedRepo.contentSha1git + '/'
});
- }
+ });
});
- it('should show 404 error for invalid path', function() {
- urlShouldShowError(invalidPageUrl, {
- code: '404',
- msg: 'The resource ' + invalidPageUrl +
- ' could not be found on the server.'
+ context('For invalid data', function() {
+ it(`should display 400 for invalid checksum for
+ directory, snapshot, revision, content`, function() {
+ const types = ['directory', 'snapshot', 'revision', 'content'];
+ for (let type of types) {
+ const url = this.Urls[`browse_${type}`](invalidChecksum);
+ urlShouldShowError(url, {
+ code: '400',
+ msg: 'BadInputExc: Invalid checksum query string ' +
+ invalidChecksum
+ });
+ }
+ });
+
+ it('should show 404 error for invalid path', function() {
+ urlShouldShowError(invalidPageUrl, {
+ code: '404',
+ msg: 'The resource ' + invalidPageUrl +
+ ' could not be found on the server.'
+ });
});
});
});
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Jul 4 2025, 7:37 PM (8 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3449077
Attached To
R65 Staging repository
Event Timeline
Log In to Comment