Skip to content

Conversation

@benzekrimaha
Copy link
Contributor

@benzekrimaha benzekrimaha commented Oct 22, 2025

Issue: CLDSRV-724

@codecov
Copy link

codecov bot commented Oct 22, 2025

❌ 54 Tests Failed:

Tests completed Failed Passed Skipped
7308 54 7254 0
View the top 3 failed test(s) by shortest run time
"after all" hook for "should list buckets"::GET Service - AWS.S3.listBuckets With default signature when user has credential "after all" hook for "should list buckets"
Stack Traces | 0s run time
s3.deleteBucket is not a function
"after all" hook for "should list buckets"::GET Service - AWS.S3.listBuckets With v4 signature when user has credential "after all" hook for "should list buckets"
Stack Traces | 0s run time
s3.deleteBucket is not a function
"before all" hook for "should list buckets concurrently"::GET Service - AWS.S3.listBuckets With default signature when user has credential "before all" hook for "should list buckets concurrently"
Stack Traces | 0s run time
s3.config.update is not a function
"before all" hook for "should list buckets concurrently"::GET Service - AWS.S3.listBuckets With v4 signature when user has credential "before all" hook for "should list buckets concurrently"
Stack Traces | 0s run time
s3.config.update is not a function
should abort a multipart upload::aws-node-sdk test suite as registered user should abort a multipart upload
Stack Traces | 0s run time
error aborting multipart upload: MissingRequiredParameter: Missing required key 'UploadId' in params
should show us-east-1 as bucket location sinceIP address endpoint was not in config thereby defaulting to us-east-1::Requests to ip endpoint not in config With default signature should show us-east-1 as bucket location sinceIP address endpoint was not in config thereby defaulting to us-east-1
Stack Traces | 0.003s run time
Expected values to be strictly equal:

undefined !== ''
should show us-east-1 as bucket location sinceIP address endpoint was not in config thereby defaulting to us-east-1::Requests to ip endpoint not in config With v4 signature should show us-east-1 as bucket location sinceIP address endpoint was not in config thereby defaulting to us-east-1
Stack Traces | 0.003s run time
Expected values to be strictly equal:

undefined !== ''
"after each" hook for "should return InvalidRange error if get range bytes=0-9 on empty object"::aws-node-sdk test suite as registered user Get range on empty object "after each" hook for "should return InvalidRange error if get range bytes=0-9 on empty object"
Stack Traces | 0.379s run time
error deletting object regularly: UnknownEndpoint: Inaccessible host: `ftest-bucketemptyobj-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
"before each" hook for "should return InvalidRange error if get range bytes=0-9 on empty object"::aws-node-sdk test suite as registered user Get range on empty object "before each" hook for "should return InvalidRange error if get range bytes=0-9 on empty object"
Stack Traces | 0.74s run time
error creating bucket: UnknownEndpoint: Inaccessible host: `ftest-bucketemptyobj-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
View the full list of 45 ❄️ flaky test(s)
downloaded file should equal file that was put::aws-node-sdk v2auth query tests downloaded file should equal file that was put

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.01s run time
Expected values to be strictly equal:

2 !== 0
downloaded file should equal file that was put::aws-node-sdk v4auth query tests downloaded file should equal file that was put

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.009s run time
Expected values to be strictly equal:

2 !== 0
should complete a multipart upload::aws-node-sdk test suite as registered user should complete a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.001s run time
error completing mpu: MissingRequiredParameter: Missing required key 'UploadId' in params
should create a bucket::aws-node-sdk test suite as registered user should create a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.204s run time
error creating bucket: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should create a bucket::aws-node-sdk v2auth query tests should create a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.286s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should create a bucket::aws-node-sdk v4auth query tests should create a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.069s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should create a multipart upload::aws-node-sdk test suite as registered user should create a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.504s run time
error initiating multipart upload: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should delete a bucket::aws-node-sdk test suite as registered user should delete a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.543s run time
error deleting bucket: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should delete a bucket::aws-node-sdk v2auth query tests should delete a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.024s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should delete a bucket::aws-node-sdk v4auth query tests should delete a bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.068s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should delete an object put without MPU::aws-node-sdk test suite as registered user should delete an object put without MPU

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.204s run time
error deleting object: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should delete an object with native characters::aws-node-sdk v4auth query tests should delete an object with native characters

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.025s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should delete an object::aws-node-sdk v2auth query tests should delete an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.071s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should delete an object::aws-node-sdk v4auth query tests should delete an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.018s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should delete object created by multipart upload::aws-node-sdk test suite as registered user should delete object created by multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.554s run time
error deleting object: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should do a bucket listing with result::aws-node-sdk v4auth query tests should do a bucket listing with result

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.017s run time
Cannot read properties of undefined (reading 'map')
should get a range for an object put without MPU::aws-node-sdk test suite as registered user should get a range for an object put without MPU

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.367s run time
error getting object range: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range for an object using only a start offset in the request::aws-node-sdk test suite as registered user should get a range for an object using only a start offset in the request

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.162s run time
error getting object range: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range for an object using only an end offset in the request::aws-node-sdk test suite as registered user should get a range for an object using only an end offset in the request

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.314s run time
error getting object range: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range from the first part of an object put by multipart upload::aws-node-sdk test suite as registered user should get a range from the first part of an object put by multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.337s run time
error getting object range put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range from the second part of an object put by multipart upload and include the end even if the range requested goes beyond the actual object end::aws-node-sdk test suite as registered user should get a range from the second part of an object put by multipart upload and include the end even if the range requested goes beyond the actual object end

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.172s run time
error getting object range put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range from the second part of an object put by multipart upload::aws-node-sdk test suite as registered user should get a range from the second part of an object put by multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.378s run time
error getting object range put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get a range that spans both parts of an object put by multipart upload::aws-node-sdk test suite as registered user should get a range that spans both parts of an object put by multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.587s run time
error getting object range put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get an object put by multipart upload::aws-node-sdk test suite as registered user should get an object put by multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.442s run time
error getting object put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get an object::aws-node-sdk v2auth query tests should get an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.037s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should get an object::aws-node-sdk v4auth query tests should get an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.019s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should get entire object if range is invalid::aws-node-sdk test suite as registered user should get entire object if range is invalid

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.399s run time
error getting object range put by mpu: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should get full object if range header is invalid::aws-node-sdk test suite as registered user should get full object if range header is invalid

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.071s run time
error getting object range: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should list objects in bucket::aws-node-sdk v4auth query tests should list objects in bucket

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.286s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should list the parts of a multipart upload::aws-node-sdk test suite as registered user should list the parts of a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.001s run time
error listing parts: MissingRequiredParameter: Missing required key 'UploadId' in params
should put an object regularly (non-MPU)::aws-node-sdk test suite as registered user should put an object regularly (non-MPU)

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.373s run time
error putting object regularly: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should put an object with an acl setting and a storage class setting::aws-node-sdk v2auth query tests should put an object with an acl setting and a storage class setting

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.034s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should put an object with an acl setting and a storage class setting::aws-node-sdk v4auth query tests should put an object with an acl setting and a storage class setting

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.068s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should put an object with native characters::aws-node-sdk v4auth query tests should put an object with native characters

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.019s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should put an object::aws-node-sdk v2auth query tests should put an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.034s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should put an object::aws-node-sdk v4auth query tests should put an object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.029s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '200 OK'
should return 204 on delete of non-existing object::aws-node-sdk v4auth query tests should return 204 on delete of non-existing object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.019s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should return InvalidRange if the range of the resource does not cover the byte range::aws-node-sdk test suite as registered user should return InvalidRange if the range of the resource does not cover the byte range

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.57s run time
Expected values to be strictly equal:
+ actual - expected

+ 'UnknownEndpoint'
- 'InvalidRange'
should return a 204 on delete of an already deleted object::aws-node-sdk v4auth query tests should return a 204 on delete of an already deleted object

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.02s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '204 NO CONTENT'
should return an error code if expires header is too far in the future::aws-node-sdk v2auth query tests should return an error code if expires header is too far in the future

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.075s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '403 FORBIDDEN'
should return an error code if request occurs after expiry::aws-node-sdk v2auth query tests should return an error code if request occurs after expiry

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 1.54s run time
Expected values to be strictly equal:
+ actual - expected

+ undefined
- '403 FORBIDDEN'
should return an error if do not provide correct xml when completing a multipart upload::aws-node-sdk test suite as registered user should return an error if do not provide correct xml when completing a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.001s run time
Expected values to be strictly equal:
+ actual - expected

+ 'MissingRequiredParameter'
- 'MalformedXML'
should upload a part of a multipart upload to be aborted::aws-node-sdk test suite as registered user should upload a part of a multipart upload to be aborted

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.001s run time
error uploading a part: MissingRequiredParameter: Missing required key 'UploadId' in params
should upload a part of a multipart upload::aws-node-sdk test suite as registered user should upload a part of a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0.286s run time
error initiating multipart upload: UnknownEndpoint: Inaccessible host: `ftest-mybucket-85.127.0.0.1' at port `undefined'. This service may not be available in the `us-east-1' region.
should upload a second part of a multipart upload::aws-node-sdk test suite as registered user should upload a second part of a multipart upload

Flake rate in main: 13.81% (Passed 668 times, Failed 107 times)

Stack Traces | 0s run time
error uploading a part: MissingRequiredParameter: Missing required key 'UploadId' in params

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@benzekrimaha benzekrimaha force-pushed the improvement/CLDSRV-724-bucket-related-functional-tests branch 3 times, most recently from 834eefe to 92f36a8 Compare October 28, 2025 06:43
@benzekrimaha benzekrimaha force-pushed the improvement/CLDSRV-724-versionning-related-functional-tests branch from f5f1929 to 84f6930 Compare October 28, 2025 06:50
@benzekrimaha benzekrimaha force-pushed the improvement/CLDSRV-724-bucket-related-functional-tests branch from 92f36a8 to c1fb5b5 Compare October 28, 2025 06:58
@benzekrimaha benzekrimaha force-pushed the improvement/CLDSRV-724-versionning-related-functional-tests branch 3 times, most recently from d0f6428 to a680a09 Compare October 28, 2025 07:05
@benzekrimaha benzekrimaha force-pushed the improvement/CLDSRV-724-versionning-related-functional-tests branch 2 times, most recently from 2ce7329 to 9bdb532 Compare October 28, 2025 08:19
@benzekrimaha benzekrimaha marked this pull request as ready for review October 28, 2025 08:19
Copy link
Contributor

@williamlardier williamlardier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just one question around listing and special characters, otherwise lgtm

return s3.putObject({
it('put objects inside bucket', async () => {
for (const obj of objects) {
// Handle versioning state changes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Handle versioning state changes

await s3.send(new PutBucketVersioningCommand(params));
}

// Handle object operations
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Handle object operations


// Handle object operations
if (obj.value === null) {
// For delete operations, we need to check the response headers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// For delete operations, we need to check the response headers

it('should list object versions', async () => {
const key = 'key';

// Put first version
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Put first version

}));
const versionId1 = putResult1.VersionId;

// Put second version
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Put second version

}));
const versionId2 = putResult2.VersionId;

// List versions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// List versions

Body: 'body1',
}));

// Delete object (creates delete marker)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Delete object (creates delete marker)

(same for other comments in the file)

Comment on lines -70 to -72
{ name: 'Pâtisserie=中文-español-English', value: 'foo' },
{ name: 'Pâtisserie=中文-español-English', value: 'bar' },
{ name: 'notes/spring/1.txt', value: 'qux' },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are we stopping supporting object names like these? There is an advantage of keeping the special characters, as we do listing, it's to ensure it works well even when the object names are uncommon

afterEach(async () => {
await removeAllVersions({ Bucket: bucketName });
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
// Create objects in batches of 20 concurrently
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Create objects in batches of 20 concurrently

Copy link
Contributor

@DarkIsDude DarkIsDude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just some nits but good 👏

const config = getConfig('default', { signatureVersion: 'v4' });
const s3 = new S3(config);
const config = getConfig('default');

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

nits

};

async function customS3Request(CommandClass, params, buildParams) {
const customS3 = new S3Client({ ...config });
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indentation issue

Comment on lines +31 to 32
function checkOneVersion(s3, bucket, versionId) {
return s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
function checkOneVersion(s3, bucket, versionId) {
return s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {
async function checkOneVersion(s3, bucket, versionId) {
return await s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {

This will keep the checkOneVersion in the stack trace. It's a "good" practice for async/await. But nits


// empty and delete bucket after testing if bucket exists
afterEach(done => {
afterEach(done => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
afterEach(done => {
afterEach(done => {

indentation ? Weird that the CI pass 😬

return d;
}

function dateConvert(d) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This helper seems really useful ?

VersioningConfiguration: versioningSuspended,
}));

// List versions to check null version exists
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would delete comments as they just describe the test (same before)

Copy link
Contributor

@DarkIsDude DarkIsDude left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test

@DarkIsDude DarkIsDude self-requested a review October 28, 2025 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants