Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into feature/dynamodb #5574

Open
wants to merge 2,454 commits into
base: feature/dynamodb
Choose a base branch
from

Conversation

aws-toolkit-automation
Copy link
Collaborator

Automatic merge failed

  • Resolve conflicts and push to this PR branch.
  • Do not squash-merge this PR. Use the "Create a merge commit" option to do a regular merge.

Command line hint

To perform the merge from the command line, you could do something like the following (where "origin" is the name of the remote in your local git repo):

git stash
git fetch --all
git checkout origin/feature/dynamodb
git merge origin/master
git commit
git push origin HEAD:refs/heads/autoMerge/feature/dynamodb

@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner October 2, 2024 16:47
@aws-toolkit-automation aws-toolkit-automation requested a review from a team as a code owner December 3, 2024 22:16
aws-toolkit-automation and others added 25 commits February 10, 2025 15:03
## Problem
In the release yesterday we found an issue where fetching remote region
data was failing

## Solution
Add a new test since its critical to the flow


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
- we have no confidence checks on inline completion e2e flows
- we want to use these tests to eventually verify that codewhisperer
language server is behaving correctly

## Solution
- add e2e tests that focus on sending inputs to the text editor and
seeing how it reacts. That way we can re-use these tests with the
codewhisperer language server

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…kflow

Merge master into feature/stepfunctions-workflow
## Problem

Amazon Q feature dev e2e test was disabled due to flakiness. Issue:
#6513


## Solution

- Modified test prompt to prevent no change required scenarios that were
causing deadend.
- Add `getSelectedTab` function in `qTestingFramework` to access newly
created tab by quick action.


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
ci(lint): rule to detect index.ts imports in core
## Problem
1. Currently the indentation setting used in the integration defaults to
4 spaces. If it's different in user's VSCode setting, the spacing for
the string sent from the integration will not match
2. Currently context menu lacks the command to launch WFS. It [has been
added
before](https://github.com/aws/aws-toolkit-vscode/pull/5834/files), but
it looks it was accidentally added to auto-generated file and was thus
removed later
3. WFS editor is opened by default in all modes, including conflict
resolution and some other views
4. Bug: when opening split panel while having WFS integration open, it
opens a panel with custom editor, which stays empty since we already
have an instance of WFS editor launched for that file
5. Bug: If the webview is unavailable (e.g. CDN is down or the user is
offline), integration throws an error modal and the file can't be opened
easily, even in the default editor
6. Bug: when YAML in the local file is invalid, WFS integration is
opened to the file, but since it fails to transform YAML to valid JSON,
it opens with empty definition

## Solution
1. Passing a user setting for tab spacing to be used on the webview side
to format JSON/YAML with the right indentation
2. Adding an option to launch WFS from context menu, as it was added
before (but this time in the right package.json)
3. Add editorAssociation to not open WFS in specific environments that
do not require it
4. When opening split panel panel while having WFS integration open,
open that file in default editor
5. If the webview is unavailable, open file in default editor
6. When YAML in the local file is invalid, open default editor instead
of WFS and show warning message (similar to what we do for invalid JSON)
…lemetry (#6521)

## Problem
We are mistakenly counting several client-side failures as service
faults, which is affecting our availability metrics.

## Solution
Exclude frequent client errors from faults, they should be errors.

there are multiple layers of errors, some of those are categorized to
toolkit level errors, for example this part:
```
case MonthlyConversationLimitError.name:
case CodeIterationLimitError.name:
case PromptRefusalException.name:
case NoChangeRequiredException.name:
```
Others are defaulting to ToolkitError with messages.

Ideally we should add more error models to toolkit, but for now to make
a quick fix, I just looked into the error msg, similar to what we do
here:
https://github.com/aws/aws-toolkit-vscode/blob/02d21a2fafc7479fb398ea078aa3e3adf7c62e7a/packages/core/src/amazonqFeatureDev/client/featureDev.ts#L198



---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: Yuxin Lin <[email protected]>
## Problem

This is aimed to resolve
[jscpd](https://github.com/aws/aws-toolkit-vscode/actions/runs/12778633640/job/35621822359?pr=6370)

## Solution

Refactor SessionState in doc and featureDev

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: Avi Alpert <[email protected]>
)

## Problem
- If user tries to run `/test` on the test file, Q considers test file
as source file and starts the test generation on the test file.

## Solution
- If user tries to run `/test` on the test file, Q infers the context
from the original source file and generate tests accordingly.
- No change in functionality, minor change in UX filename.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
… remove debugging. (#6548)

## Problem
Alternative solution to
#6541

## Solution
- debounce very aggressively (once per day).
- remove debugging `function_call`. 

## Notes 
debounce ignores args, so regardless of the telemetry metadata, it will
only be emitted once per day. That is, regardless of the value of
`credentialsSourceId`, it is emitted once per day.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
…er. (#6441)

## Problem
The V3 client builder currently only adds telemetry. We want some
additional functionality on each request/response.

## Solution
- Allow user to override the endpoint used by the sdk. 
- Add debugging messages for each request and response. 


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
There is a lot of duplicate code across the sdk clients. Additionally,
we want to only construct the clients once (per wrapper), and have these
clients call destroy.

## Solution
Note: the line changes are mostly the added dependency of an `@aws-sdk`
client and its hundreds of dependencies.

- create abstract class `ClientWrapper` to minimize code dupe. 
- cache sdk clients on creation within the wrappers. 
- migrate ssm client to sdkv3, using new common wrapper class. 

## Alternative Solution 
- Make all wrappers singletons so clients are created once for the
toolkit lifetime.
- Pro: Makes it impossible for a client to be re-created. 
- Con: Zero flexibility when it comes to client lifetime. All sdk
clients would be created whenever their wrapper is referenced. Without
being very careful, we could create many SDK clients up front that we
never use and can't delete.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
- If user gives user input prompt more than 4096 characters, this fails
at RTS as model supports only 4096 input characters.
`Value at 'userInput' failed to satisfy constraint: Member must have
length less than or equal to 4096`
- Ideally we should not get more than 4096 char input from user input
but still features like `/test`, `/dev` were able to get the message
length more than 4096.

## Solution
- To resolve this issue, we are adding a truncation logic to continue
the test generation workflow instead of failing at RTS.
- No new tests were added as the functionality is not impacted.
aws-toolkit-automation and others added 30 commits March 4, 2025 15:05
Merge feature/stepfunctions-workflow branch into master
- Send metrics on additional context to the
`amazonq_interactWithMessage` event. This enables measuring success
metrics as they relate to the new context features.
- Improve error handling when collecting context items & metrics.
- Add new features to /help message
- Improve efficiency by switching from vscode.workspace.findFiles to
fs.readDirectory
## Problem
Subsequent reviews (`/review`) were not possible after running a review.

## Solution
- subsequent reviews are now allowed
- Fix were made to not impact the previous bug fix where review causes
two "run code review" chat messages
- Fix were made not to impact previous bug fix to auto-trigger `/review`
from Quick Actions Menu
- Reverts #6550
## Problem
/review command functionality lacks end-to-end test coverage.

## Solution
Add basic E2E tests for file review, project review, and ignore lines
features.
feat(sdkv3): start migration to sdkv3
…ules (#6722)

## Problem
In Windows, the rules under .amazonq/rules were not send in the chat
prompt because of path resolution failure.

## Solution
![Screenshot 2025-03-04 at 3 34
34 PM](https://github.com/user-attachments/assets/649c4f40-365e-4b67-9bff-48a2a8a6c450)
Use path.join instead of vscode.Uri.joinPath

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem:

Updated the telemetry types and had to change an existing name to match
the new one.

## Solution:

use `toolkit_didLoadModule` to indicate that the module successfully
opened. In certain cases we will want to use `toolkit_willOpenModule` to
indicate the start of it, but because it doesn't look like that was used
already we can ignore it for now and revisit later.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Signed-off-by: nkomonen-amazon <[email protected]>
## Problem

Missing fields for some code scan events


## Solution

- Add `autoDetected` to:
  - `codewhisperer_codeScanIssueHover`
  - `codewhisperer_codeScanIssueIgnore`
  - `codewhisperer_codeScanIssueViewDetails`


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem

Some users are reporting S3 upload failures but we don't have the
requestIds to investigate further.


## Solution

Emit `amazonq_createUpload` metric with requestIds


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem

Events about findings are always tied to hover, apply fix, etc. Not able
to understand the number of findings which never get acted on.


## Solution

Emit metrics about findings at the time of scan results.


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
Previous mynah-ui upgrade included a regression which removed the `@`
from the context command name.

## Solution
Fix `@worskspace` regex now that @ is no longer removed. Upgrade mynah
to 4.23.1 https://github.com/aws/mynah-ui/releases/tag/v4.23.1



---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem


## Solution


---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

Signed-off-by: nkomonen-amazon <[email protected]>
### This is a merge of `feature/serverlessland` in to `master`, but I
rebased to keep it clean

New feature from the Lambda team:

The AWS Toolkit for VS Code now integrates Serverless Land's application
pattern library, allowing developers to browse, search, and implement
pre-built serverless patterns directly in the IDE. This simplifies and
accelerates the process of building serverless applications using VS
Code.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Signed-off-by: nkomonen-amazon <[email protected]>
Co-authored-by: Vandita Patidar <[email protected]>
Co-authored-by: Vandita Patidar <[email protected]>
Co-authored-by: vicheey <[email protected]>
## Problem
Customers are not able to local invoke with the runtime selected in the
webview UI. Currently the runtime used is the one specified on the
template. The feature was already added to SAMCLI
aws/aws-sam-cli#7885.

## Solution
Allows customers to change runtimes when locally invoking in the local
invoke webview, without having to change it in their template and
rebuilding. Under the hood, the newly added ```--runtime``` option will
be appended to the ```samcli``` command.
This reverts commit 62d3ec1.

## Problem

Scan name change is causing unexpected behavior from the service.


## Solution

Temporarily revert this change

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
There is a side effect from `sandbox.spy(AppBuilderRootNode.instance)`
between two integration tests for AppBuilder causing test failure due to
**_`TypeError: Attempted to wrap onDidChangeChildren which is already
wrapped`_**`

```
 1) "before each" hook for "creates an AppBuilderRootNode with correct label":
     TypeError: Attempted to wrap onDidChangeChildren which is already wrapped
      at checkWrappedMethod (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/wrap-method.js:64:21)
      at wrapMethod (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/wrap-method.js:135:13)
      at spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/spy.js:180:16)
      at /Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk-object.js:33:17
      at /Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:27:22
      at Array.forEach (<anonymous>)
      at walkInternal (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:19:5)
      at walk (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:48:12)
      at walkObject (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk-object.js:18:5)
      at Function.spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/spy.js:170:16)
      at Sandbox.spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/sandbox.js:383:35)
      at Context.<anonymous> (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/packages/core/src/testInteg/appBuilder/serverlessLand/main.test.ts:34:28)
  --------------
  Error: Stack Trace for original
      at extendObjectWithWrappedMethods (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/wrap-method.js:169:34)
      at wrapMethod (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/wrap-method.js:157:5)
      at spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/spy.js:180:16)
      at /Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk-object.js:33:17
      at /Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:27:22
      at Array.forEach (<anonymous>)
      at walkInternal (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:19:5)
      at walk (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk.js:48:12)
      at walkObject (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/util/core/walk-object.js:18:5)
      at Function.spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/spy.js:170:16)
      at Sandbox.spy (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/node_modules/sinon/lib/sinon/sandbox.js:383:35)
      at Context.<anonymous> (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/packages/core/src/testInteg/appBuilder/sidebar/appBuilderNode.test.ts:35:28)
      at Context.fn (/Volumes/workplace/Lambda Tooling/aws-toolkit-vscode/packages/core/src/test/setupUtil.ts:34:24)
      at processImmediate (node:internal/timers:483:21)
      at process.topLevelDomainCallback (node:domain:161:15)
      at process.callbackTrampoline (node:internal/async_hooks:128:24)
```

## Solution

Add additional layer of `describe()`. 

Test result: 
```
Walkthrough pattern URL exists
    ✔ Walkthrough pattern URL exists for APIdotnet (623ms)
    ✔ Walkthrough pattern URL exists for APInode (510ms)
    ✔ Walkthrough pattern URL exists for APIpython (473ms)
    ✔ Walkthrough pattern URL exists for APIjava (559ms)
    ✔ Walkthrough pattern URL exists for S3dotnet (584ms)
    ✔ Walkthrough pattern URL exists for S3node (525ms)
    ✔ Walkthrough pattern URL exists for S3python (566ms)
    ✔ Walkthrough pattern URL exists for S3java (560ms)
  Application Builder
    root node
      ✔ creates an AppBuilderRootNode with correct label
      ✔ generates correct number of children nodes: walkthrough node + project nodes
    application nodes in workspace (Test in order)
      ✔ 1: contains application node for appbuilder-test-app
      ✔ 2: contains correct application node properties
      ✔ 3: contains correct resource node properties (4266ms)
      ✔ 4: has registered refresh command successfully
      ✔ 5: triggers auto refresh when there a file getting updated (509ms)
  Happy Path
    ✔ creates project from Serverless Land integration (1083ms)
  16 passing (10s)
globalSetup: after()
deleteTestTempDirs: deleted 2 test temp dirs

```
---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
This client is tightly coupled to some implementations, making this
migration more difficult than usual. Additionally, v3 handles streams
differently than v2. Also, some v2 features in the SDK are completely
redone. For example, pre-signing a url:
https://aws.amazon.com/blogs/developer/generate-presigned-url-modular-aws-sdk-javascript/.

## Solution
- refactor or delete most of the tests in
https://github.com/aws/aws-toolkit-vscode/blob/1dbaab43d3533cc35b8bcd705860c7199bc98264/packages/core/src/test/shared/clients/defaultS3Client.test.ts
- Most of them don't add real value. They simply assert the SDK was
called, or that errors propagate. These unit tests should be reserved
for testing the logic built on top of these requests, not the requests
themselves.
- For tests that do add value, refactor to avoid stubbing the SDK (Ex.
`listFiles` refactor).
- Throw an explicit error when we reach a code path that is not
web-supported.
- Migrate to new pre-signing logic, described here:
https://aws.amazon.com/blogs/developer/generate-presigned-url-modular-aws-sdk-javascript/
- Simplify list buckets since region is now added in response by
default.
- Unify Bucket type definitions. There originally was the S3 `Bucket`
type exported by the SDK, our own `Bucket`, and `DefaultBucket`.
`Bucket` was derived from `DefaultBucket`, but this made reading type
signatures ambiguous at first glance. These are all now under S3Bucket.

## Verification
To verify this migration didn't break anything I manually tested the
following through the toolkit:
- Create buckets (in console and toolkit) in three different regions,
ensure they display in proper regions.
- Create folders (nested as well). 
- Upload a file, view and edit the file through explorer. 
- Download the file, and verify my changes were saved through S3. 
- Generate a presigned url for objects in my bucket. 
- Delete a file, bucket, folder. 
- Verify copied ARN, name, and Path are correct through selection. 

## Future Work
- Downloading and uploading a file now supports web streams, which means
that `GetObject` response body is now a
`StreamingBlobPayloadOutputTypes` from `@smithy/types`. This is a
general type for web/node streams, therefore we must cast to Node's
`Readable` type. Ideally we would support working with the abstract
stream directly and avoiding the cast. The approach is outlined here:
https://docs.aws.amazon.com/code-library/latest/ug/s3_example_s3_Scenario_UsingLargeFiles_section.html.
- E2E tests for uploading and downloading a file. 
- Remove mocks from
https://github.com/aws/aws-toolkit-vscode/blob/1a313e4029930e1da48558f6c7b84f48036672e9/packages/core/src/test/awsService/s3/commands/uploadFile.test.ts.
Mocked tests are extremely expensive to maintain because they inherently
rely on implementation details.
- There are three listBuckets-related methods that all do slightly
different things. These should live in a single method, `listBuckets`
and it should return an `AsyncCollection` for proper pagination support.
- Reduce stub usage in the tests to avoid coupling to implementation.
The entire test suite for the wrapper stubbed S3 v2 directly, making it
very difficult to refactor the tests.
---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).
- License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: aws-toolkit-automation <[email protected]>
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.