wing
wing copied to clipboard
Cloud test fails if root directory contains spaces
I tried this:
create an empty directory with a wing test
// main.test.w
bring cloud;
let bucket = new cloud.Bucket();
test "Bucket is empty" {
assert(bucket.list().length == 0);
}
and run wing test -t tf-aws main.test.w
This happened:
✔ Compiling main.test.w to tf-aws...
✔ terraform init
✖ terraform apply
Command failed: terraform apply -auto-approve
╷
│ Error: opening S3 object source (assets/Test78LWzuS1GQ_env0_testBucketisempty_Handler_Asset_9A744A14/966A2F55D4BD8FD662E1A92D8BB84CD9/archive.zip): open assets/Test78LWzuS1GQ_env0_testBucketisempty_Handler_Asset_9A744A14/966A2F55D4BD8FD662E1A92D8BB84CD9/archive.zip: no such file or directory
│
│ with aws_s3_object.Test78LWzuS1GQ_env0_testBucketisempty_Handler_S3Object_9FB2AC36,
│ on main.tf.json line 145, in resource.aws_s3_object.Test78LWzuS1GQ_env0_testBucketisempty_Handler_S3Object_9FB2AC36:
│ 145: }
│
╵
✔ terraform destroy
Tests 1 failed (1)
Snapshots 1 skipped
Test Files 1 failed (1)
Duration 0m23.74s
I expected this:
The test to pass.
Is there a workaround?
no
Anything else?
The test passes on the simulator
>_ wing test main.test.w
pass ─ main.test.wsim » root/env0/test:Bucket is empty
Tests 1 passed (1)
Snapshots 1 skipped
Test Files 1 passed (1)
Duration 0m0.30s
Wing Version
0.73.41
Node.js Version
v20.11.1
Platform(s)
MacOS
Community Notes
- Please vote by adding a 👍 reaction to the issue to help us prioritize.
- If you are interested to work on this issue, please leave a comment.
It worked to me, same version (0.73.41
):
wing test -t tf-aws main.test.w
✔ Compiling main.test.w to tf-aws...
✔ terraform init
✔ terraform apply
✔ Setting up test runner...
✔ Running tests...
pass ─ main.test.tfaws.454176 » root/Test.OoU3q9EuIO/env0/test:Bucket is empty
✔ terraform destroy
✔ Snapshot main.test.w.tf-aws.snap.md...
Tests 1 passed (1)
Snapshots 1 new
Test Files 1 passed (1)
Duration 0m51.02s
it looks like it's happening if the root directory contains a space
Maybe we should file an issue anyway?
I'm able to repro this. Running wing test "dir with spaces/main.w"
is fine but wing test -t tf-aws "dir with spaces/main.w"
fails with the aforementioned error.
@srinumadhavv it is all yours :)
wing compile
fails for @thoroc, too, if there's spaces in the cwd.
Yes unfortunately MacOS has those spaces in certain situations where node tries to use a path on /Users/<USER>/Library/Application Support/
during compile time. In my case, this is due to be using github.com/Schniz/fnm. I have tried to have a peruse at the code for the compile
subcommand, but I think it is calling code outside this part of the source code.
Of course the path could be put between quotes or the space escaped to solve this issue, from what I understand.
Another user ran into this while compiling on Windows (the parent directory of their project had spaces, causing either compilation to fail or deployment to AWS to fail). Link to the discussion on discord: https://discord.com/channels/1096077994994442281/1258078911749820436