Skip to content

Commit

Permalink
update httpfs test.
Browse files Browse the repository at this point in the history
  • Loading branch information
e1arikawa committed Sep 24, 2024
1 parent 383ff1b commit 426a1a4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 21 deletions.
10 changes: 10 additions & 0 deletions packages/duckdb-wasm/test/httpfs_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,15 +315,25 @@ export function testHTTPFSAsync(
});

it('can read parquet file from URL with long query string', async () => {
// Create S3 file
let data = await resolveData('/uni/studenten.parquet');
await putTestFileToS3('correct_auth_test', 'parquet', data);
// Generate a long query string, similar to an S3 Presigned URL
const queryString = generateLongQueryString();
// Execute the query
const result = await conn!.query(
`SELECT * FROM "${S3_ENDPOINT}/${BUCKET_NAME}/correct_auth_test.parquet?${queryString}";`,
);
expect(Number((result.getChildAt(0)?.get(6)))).toEqual(Number(29120));
});

it('can read csv file from URL with long query string', async () => {
// Create S3 file
let data = await resolveData('/uni/studenten.parquet');
await putTestFileToS3('correct_auth_test', 'csv', data);
// Generate a long query string, similar to an S3 Presigned URL
const queryString = generateLongQueryString();
// Execute the query
const result = await conn!.query(
`SELECT * FROM "${S3_ENDPOINT}/${BUCKET_NAME}/correct_auth_test.csv?${queryString}";`,
);
Expand Down
38 changes: 17 additions & 21 deletions packages/duckdb-wasm/test/string_test_helper.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
export function generateLongQueryString(): string {
const aaa = generateRandomString(512);
const ddd = generateRandomString(512);
const ccc = generateRandomString(256);
const eee = generateRandomString(128);
const ggg = generateRandomString(64);
const hhh = generateRandomString(32);
const aaa = repeatCharacter('A', 512);
const ccc = repeatCharacter('C', 256);
const ddd = repeatCharacter('D', 512);
const eee = repeatCharacter('E', 256);
const ggg = repeatCharacter('G', 128);
const hhh = repeatCharacter('H', 64);

return `T=Long` +
`&T-AAA=${aaa}` +
`&T-CCC=${ccc}` +
`&T-DDD=${ddd}` +
`&T-EEE=${eee}` +
`&T-GGG=${ggg}` +
`&T-HHH=${hhh}`;
return `test=inline` +
`&Test-Security-Token=${aaa}` +
`&Test-Algorithm=${ccc}` +
`&Test-Date=${ddd}` +
`&Test-SignedHeaders=host` +
`&Test-Expires=43200` +
`&Test-Credential=${eee}` +
`&Test-Signature=${ggg}`;
}

export function generateRandomString(length: number): string {
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += chars.charAt(Math.floor(Math.random() * chars.length));
}
return result;
}
export function repeatCharacter(char: string, length: number): string {
return char.repeat(length);
}

0 comments on commit 426a1a4

Please sign in to comment.