Skip to content

Commit

Permalink
Add test case around handling file names with spaces.
Browse files Browse the repository at this point in the history
This is specifically for sveltejs/kit#740 to
assert that sirv is working as expected.
  • Loading branch information
samccone committed Mar 28, 2021
1 parent da98454 commit d3e8f5c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 45 deletions.
1 change: 1 addition & 0 deletions tests/public/with space.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
with space.txt
81 changes: 36 additions & 45 deletions tests/sirv.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,57 +71,48 @@ basic.run();

const encode = suite('URI encoding');

encode('should work when the request path contains accented characters :: dev', async () => {
let server = utils.http({ dev: true });

try {
let res = await server.send('GET', '/fünke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});

encode('should work when the request path contains encoded characters :: dev', async () => {
let server = utils.http({ dev: true });
for (let mode of ["dev", "prod"]) {
encode(`should work when the request path contains accented characters :: ${mode}`, async () => {
let server = utils.http({ dev: mode === "dev"});

try {
let res = await server.send('GET', '/f%C3%BCnke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});
try {
let res = await server.send('GET', '/fünke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});

encode('should work when the request path contains accented characters :: prod', async () => {
let server = utils.http({ dev: false });
encode(`should work when the request path contains encoded characters :: ${mode}`, async () => {
let server = utils.http({ dev: mode === "dev"});

try {
let res = await server.send('GET', '/fünke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});

encode('should work when the request path contains encoded characters :: prod', async () => {
let server = utils.http({ dev: false });
try {
let res = await server.send('GET', '/f%C3%BCnke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});
encode(`should work when the request path contains space encoded :: ${mode}`, async () => {
let server = utils.http({ dev: mode === "dev"});

try {
let res = await server.send('GET', '/with%20space.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'with space.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});

try {
let res = await server.send('GET', '/f%C3%BCnke.txt');
assert.is(res.headers['content-type'], 'text/plain');
assert.is(res.data, 'fünke.txt\n');
assert.is(res.statusCode, 200);
} finally {
server.close();
}
});
}

encode.run();

Expand Down

0 comments on commit d3e8f5c

Please sign in to comment.