@@ -527,13 +527,13 @@ describe('GoogleGCSPublish', () => {
|
||||
app = express().use(publisher.docsRouter());
|
||||
|
||||
const pngResponse = await request(app).get(
|
||||
`/${rootPath}/${entityTripletPath}/img/with%20spaces.png`,
|
||||
`/${entityTripletPath}/img/with%20spaces.png`,
|
||||
);
|
||||
expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual(
|
||||
'found it',
|
||||
);
|
||||
const jsResponse = await request(app).get(
|
||||
`/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`,
|
||||
`/${entityTripletPath}/some%20folder/also%20with%20spaces.js`,
|
||||
);
|
||||
expect(jsResponse.text).toEqual('found it too');
|
||||
});
|
||||
@@ -548,13 +548,13 @@ describe('GoogleGCSPublish', () => {
|
||||
app = express().use(publisher.docsRouter());
|
||||
|
||||
const pngResponse = await request(app).get(
|
||||
`/${rootPath}/${entityTripletPath}/img/with%20spaces.png`,
|
||||
`/${entityTripletPath}/img/with%20spaces.png`,
|
||||
);
|
||||
expect(Buffer.from(pngResponse.body).toString('utf8')).toEqual(
|
||||
'found it',
|
||||
);
|
||||
const jsResponse = await request(app).get(
|
||||
`/${rootPath}/${entityTripletPath}/some%20folder/also%20with%20spaces.js`,
|
||||
`/${entityTripletPath}/some%20folder/also%20with%20spaces.js`,
|
||||
);
|
||||
expect(jsResponse.text).toEqual('found it too');
|
||||
});
|
||||
|
||||
@@ -274,18 +274,14 @@ export class GoogleGCSPublish implements PublisherBase {
|
||||
*/
|
||||
docsRouter(): express.Handler {
|
||||
return (req, res) => {
|
||||
// Decode and trim the leading forward slash
|
||||
const decodedUri = decodeURI(req.path.replace(/^\//, ''));
|
||||
|
||||
// Root path is removed from the Uri so that legacy casing can be applied
|
||||
// to the entity triplet without manipulating the root path
|
||||
const decodedUriNoRoot = path.relative(this.bucketRootPath, decodedUri);
|
||||
|
||||
// filePath example - /default/component/documented-component/index.html
|
||||
const filePathNoRoot = this.legacyPathCasing
|
||||
? decodedUriNoRoot
|
||||
: lowerCaseEntityTripletInStoragePath(decodedUriNoRoot);
|
||||
? decodedUri
|
||||
: lowerCaseEntityTripletInStoragePath(decodedUri);
|
||||
|
||||
// Re-prepend the root path to the relative file path
|
||||
// Prepend the root path to the relative file path
|
||||
const filePath = path.posix.join(this.bucketRootPath, filePathNoRoot);
|
||||
|
||||
// Files with different extensions (CSS, HTML) need to be served with different headers
|
||||
|
||||
Reference in New Issue
Block a user