Skip to content

Commit

Permalink
fix: fix encoded semver spec (#497)
Browse files Browse the repository at this point in the history
  • Loading branch information
killagu authored Jun 7, 2023
1 parent 183223b commit aa39ced
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/port/controller/PackageVersionFileController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@ export class PackageVersionFileController extends AbstractController {
}
if (packageVersion.version !== versionOrTag) {
ctx.set('cache-control', META_CACHE_CONTROL);
const location = ctx.url.replace(`/${fullname}/${versionOrTag}/files`, `/${fullname}/${packageVersion.version}/files`);
let location = ctx.url.replace(`/${fullname}/${versionOrTag}/files`, `/${fullname}/${packageVersion.version}/files`);
location = location.replace(`/${fullname}/${encodeURIComponent(versionOrTag)}/files`, `/${fullname}/${packageVersion.version}/files`);
throw this.createControllerRedirectError(location);
}
return packageVersion;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,19 @@ describe('test/port/controller/PackageVersionFileController/listFiles.test.ts',
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');
res = await app.httpRequest()
.get(`/${pkg.name}/^1.0.0/files`);
assert.equal(res.status, 302);
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');
res = await app.httpRequest()
.get(`/${pkg.name}/%5E1.0.0/files`);
assert.equal(res.status, 302);
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');

res = await app.httpRequest()
.get(`/${pkg.name}/latest/files?meta&foo=bar`);
assert.equal(res.status, 302);
Expand Down
14 changes: 14 additions & 0 deletions test/port/controller/PackageVersionFileController/raw.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,20 @@ describe('test/port/controller/PackageVersionFileController/raw.test.ts', () =>
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files/package.json`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');

res = await app.httpRequest()
.get(`/${pkg.name}/^1.0.0/files/package.json`);
assert.equal(res.status, 302);
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files/package.json`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');

res = await app.httpRequest()
.get(`/${pkg.name}/%5E1.0.0/files/package.json`);
assert.equal(res.status, 302);
assert.equal(res.headers.location, `/${pkg.name}/1.0.0/files/package.json`);
assert.equal(res.headers['cache-control'], 'public, s-maxage=600, max-age=60');
assert.equal(res.headers.vary, 'Origin, Accept, Accept-Encoding');
});

it('should show one package version file meta', async () => {
Expand Down
10 changes: 10 additions & 0 deletions test/port/controller/package/ShowPackageVersionController.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,16 @@ describe('test/port/controller/package/ShowPackageVersionController.test.ts', ()
.expect(200);
assert.equal(res.body.version, '2.0.0');

res = await app.httpRequest()
.get(`/${pkg.name}/^2.0.0`)
.expect(200);
assert.equal(res.body.version, '2.0.0');

res = await app.httpRequest()
.get(`/${pkg.name}/%5E2.0.0`)
.expect(200);
assert.equal(res.body.version, '2.0.0');

// new beta tag
res = await app.httpRequest()
.put(`/-/package/${pkg.name}/dist-tags/beta`)
Expand Down

0 comments on commit aa39ced

Please sign in to comment.