@pulumi/pulumi 3.96.2 → 3.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/automation/localWorkspace.d.ts +16 -0
- package/automation/localWorkspace.js +42 -0
- package/automation/localWorkspace.js.map +1 -1
- package/automation/stack.d.ts +14 -0
- package/automation/stack.js +22 -0
- package/automation/stack.js.map +1 -1
- package/automation/workspace.d.ts +16 -0
- package/package.json +2 -1
- package/proto/language_pb.d.ts +67 -0
- package/proto/language_pb.js +523 -5
- package/provider/server.js +1 -1
- package/provider/server.js.map +1 -1
- package/tests/automation/data/nested_config/Pulumi.dev.yaml +1 -2
- package/tests/automation/localWorkspace.spec.js +40 -7
- package/tests/automation/localWorkspace.spec.js.map +1 -1
- package/tests/automation/util.js +2 -1
- package/tests/automation/util.js.map +1 -1
- package/tests/runtime/langhost/run.spec.js +85 -67
- package/tests/runtime/langhost/run.spec.js.map +1 -1
- package/version.js +1 -1
|
@@ -72,24 +72,24 @@ describe("rpc", () => {
|
|
|
72
72
|
const cases = {
|
|
73
73
|
// An empty program.
|
|
74
74
|
empty: {
|
|
75
|
-
|
|
75
|
+
pwd: path.join(base, "000.empty"),
|
|
76
76
|
expectResourceCount: 0,
|
|
77
77
|
},
|
|
78
78
|
// The same thing, just using pwd rather than an absolute program path.
|
|
79
79
|
"empty.pwd": {
|
|
80
80
|
pwd: path.join(base, "000.empty"),
|
|
81
|
-
|
|
81
|
+
main: "./",
|
|
82
82
|
expectResourceCount: 0,
|
|
83
83
|
},
|
|
84
84
|
// The same thing, just using pwd and the filename rather than an absolute program path.
|
|
85
85
|
"empty.pwd.index.js": {
|
|
86
86
|
pwd: path.join(base, "000.empty"),
|
|
87
|
-
|
|
87
|
+
main: "./index.js",
|
|
88
88
|
expectResourceCount: 0,
|
|
89
89
|
},
|
|
90
90
|
// A program that allocates a single resource.
|
|
91
91
|
one_resource: {
|
|
92
|
-
|
|
92
|
+
pwd: path.join(base, "001.one_resource"),
|
|
93
93
|
expectResourceCount: 1,
|
|
94
94
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
95
95
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -99,7 +99,7 @@ describe("rpc", () => {
|
|
|
99
99
|
},
|
|
100
100
|
// A program that allocates ten simple resources.
|
|
101
101
|
ten_resources: {
|
|
102
|
-
|
|
102
|
+
pwd: path.join(base, "002.ten_resources"),
|
|
103
103
|
expectResourceCount: 10,
|
|
104
104
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
105
105
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -119,7 +119,7 @@ describe("rpc", () => {
|
|
|
119
119
|
},
|
|
120
120
|
// A program that allocates a complex resource with lots of input and output properties.
|
|
121
121
|
one_complex_resource: {
|
|
122
|
-
|
|
122
|
+
pwd: path.join(base, "003.one_complex_resource"),
|
|
123
123
|
expectResourceCount: 1,
|
|
124
124
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
125
125
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -151,7 +151,7 @@ describe("rpc", () => {
|
|
|
151
151
|
},
|
|
152
152
|
// A program that allocates 10 complex resources with lots of input and output properties.
|
|
153
153
|
ten_complex_resources: {
|
|
154
|
-
|
|
154
|
+
pwd: path.join(base, "004.ten_complex_resources"),
|
|
155
155
|
expectResourceCount: 10,
|
|
156
156
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
157
157
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -195,7 +195,7 @@ describe("rpc", () => {
|
|
|
195
195
|
},
|
|
196
196
|
// A program that allocates a single resource.
|
|
197
197
|
resource_thens: {
|
|
198
|
-
|
|
198
|
+
pwd: path.join(base, "005.resource_thens"),
|
|
199
199
|
expectResourceCount: 2,
|
|
200
200
|
registerResource: (ctx, dryrun, t, name, res, dependencies) => {
|
|
201
201
|
let id;
|
|
@@ -271,7 +271,7 @@ describe("rpc", () => {
|
|
|
271
271
|
},
|
|
272
272
|
// A program that allocates ten simple resources that use dependsOn to depend on one another, 10 different ways.
|
|
273
273
|
ten_depends_on_resources: {
|
|
274
|
-
|
|
274
|
+
pwd: path.join(base, "008.ten_depends_on_resources"),
|
|
275
275
|
expectResourceCount: 100,
|
|
276
276
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
277
277
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -291,7 +291,7 @@ describe("rpc", () => {
|
|
|
291
291
|
},
|
|
292
292
|
// A simple test of the invocation RPC pathways.
|
|
293
293
|
invoke: {
|
|
294
|
-
|
|
294
|
+
pwd: path.join(base, "009.invoke"),
|
|
295
295
|
expectResourceCount: 0,
|
|
296
296
|
invoke: (ctx, tok, args, version, provider) => {
|
|
297
297
|
assert_1.default.strictEqual(provider, "");
|
|
@@ -319,12 +319,12 @@ describe("rpc", () => {
|
|
|
319
319
|
"myBag:A": "42",
|
|
320
320
|
"myBag:bbbb": "a string o' b's",
|
|
321
321
|
},
|
|
322
|
-
|
|
322
|
+
pwd: path.join(base, "010.runtime_settings"),
|
|
323
323
|
expectResourceCount: 0,
|
|
324
324
|
},
|
|
325
325
|
// A program that throws an ordinary unhandled error.
|
|
326
326
|
unhandled_error: {
|
|
327
|
-
|
|
327
|
+
pwd: path.join(base, "011.unhandled_error"),
|
|
328
328
|
expectResourceCount: 0,
|
|
329
329
|
expectError: "",
|
|
330
330
|
expectBail: true,
|
|
@@ -343,7 +343,7 @@ describe("rpc", () => {
|
|
|
343
343
|
},
|
|
344
344
|
// A program that creates one resource that contains an assets archive.
|
|
345
345
|
assets_archive: {
|
|
346
|
-
|
|
346
|
+
pwd: path.join(base, "012.assets_archive"),
|
|
347
347
|
expectResourceCount: 1,
|
|
348
348
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
349
349
|
assert_1.default.deepStrictEqual(res, {
|
|
@@ -385,7 +385,7 @@ describe("rpc", () => {
|
|
|
385
385
|
},
|
|
386
386
|
// A program that contains an unhandled promise rejection.
|
|
387
387
|
unhandled_promise_rejection: {
|
|
388
|
-
|
|
388
|
+
pwd: path.join(base, "013.unhandled_promise_rejection"),
|
|
389
389
|
expectResourceCount: 0,
|
|
390
390
|
expectError: "",
|
|
391
391
|
expectBail: true,
|
|
@@ -404,7 +404,7 @@ describe("rpc", () => {
|
|
|
404
404
|
},
|
|
405
405
|
// A simple test of the read resource behavior.
|
|
406
406
|
read_resource: {
|
|
407
|
-
|
|
407
|
+
pwd: path.join(base, "014.read_resource"),
|
|
408
408
|
expectResourceCount: 0,
|
|
409
409
|
readResource: (ctx, t, name, id, par, state) => {
|
|
410
410
|
assert_1.default.strictEqual(t, "test:read:resource");
|
|
@@ -426,7 +426,7 @@ describe("rpc", () => {
|
|
|
426
426
|
},
|
|
427
427
|
// Test that the runtime can be loaded twice.
|
|
428
428
|
runtime_sxs: {
|
|
429
|
-
|
|
429
|
+
pwd: path.join(base, "015.runtime_sxs"),
|
|
430
430
|
config: {
|
|
431
431
|
"sxs:message": "SxS config works!",
|
|
432
432
|
},
|
|
@@ -445,17 +445,17 @@ describe("rpc", () => {
|
|
|
445
445
|
},
|
|
446
446
|
// Test that leaked debuggable promises fail the deployment.
|
|
447
447
|
promise_leak: {
|
|
448
|
-
|
|
448
|
+
pwd: path.join(base, "016.promise_leak"),
|
|
449
449
|
expectError: "Program exited with non-zero exit code: 1",
|
|
450
450
|
},
|
|
451
451
|
// A test of parent default behaviors.
|
|
452
452
|
parent_defaults: {
|
|
453
|
-
|
|
453
|
+
pwd: path.join(base, "017.parent_defaults"),
|
|
454
454
|
expectResourceCount: 240,
|
|
455
455
|
registerResource: parentDefaultsRegisterResource,
|
|
456
456
|
},
|
|
457
457
|
logging: {
|
|
458
|
-
|
|
458
|
+
pwd: path.join(base, "018.logging"),
|
|
459
459
|
expectResourceCount: 1,
|
|
460
460
|
expectedLogs: {
|
|
461
461
|
count: 5,
|
|
@@ -496,7 +496,7 @@ describe("rpc", () => {
|
|
|
496
496
|
},
|
|
497
497
|
// Test stack outputs via exports.
|
|
498
498
|
stack_exports: {
|
|
499
|
-
|
|
499
|
+
pwd: path.join(base, "019.stack_exports"),
|
|
500
500
|
expectResourceCount: 1,
|
|
501
501
|
showRootResourceRegistration: true,
|
|
502
502
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -522,7 +522,7 @@ describe("rpc", () => {
|
|
|
522
522
|
},
|
|
523
523
|
},
|
|
524
524
|
root_resource: {
|
|
525
|
-
|
|
525
|
+
pwd: path.join(base, "001.one_resource"),
|
|
526
526
|
expectResourceCount: 2,
|
|
527
527
|
showRootResourceRegistration: true,
|
|
528
528
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -537,7 +537,7 @@ describe("rpc", () => {
|
|
|
537
537
|
},
|
|
538
538
|
},
|
|
539
539
|
backcompat_root_resource: {
|
|
540
|
-
|
|
540
|
+
pwd: path.join(base, "001.one_resource"),
|
|
541
541
|
expectResourceCount: 2,
|
|
542
542
|
skipRootResourceEndpoints: true,
|
|
543
543
|
showRootResourceRegistration: true,
|
|
@@ -553,7 +553,7 @@ describe("rpc", () => {
|
|
|
553
553
|
},
|
|
554
554
|
},
|
|
555
555
|
property_dependencies: {
|
|
556
|
-
|
|
556
|
+
pwd: path.join(base, "020.property_dependencies"),
|
|
557
557
|
expectResourceCount: 5,
|
|
558
558
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent, provider, propertyDeps) => {
|
|
559
559
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -598,7 +598,7 @@ describe("rpc", () => {
|
|
|
598
598
|
},
|
|
599
599
|
parent_child_dependencies: {
|
|
600
600
|
pwd: path.join(base, "021.parent_child_dependencies"),
|
|
601
|
-
|
|
601
|
+
main: "./index.js",
|
|
602
602
|
expectResourceCount: 2,
|
|
603
603
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
604
604
|
switch (name) {
|
|
@@ -616,7 +616,7 @@ describe("rpc", () => {
|
|
|
616
616
|
},
|
|
617
617
|
parent_child_dependencies_2: {
|
|
618
618
|
pwd: path.join(base, "022.parent_child_dependencies_2"),
|
|
619
|
-
|
|
619
|
+
main: "./index.js",
|
|
620
620
|
expectResourceCount: 3,
|
|
621
621
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
622
622
|
switch (name) {
|
|
@@ -637,13 +637,13 @@ describe("rpc", () => {
|
|
|
637
637
|
},
|
|
638
638
|
parent_child_dependencies_3: {
|
|
639
639
|
pwd: path.join(base, "023.parent_child_dependencies_3"),
|
|
640
|
-
|
|
640
|
+
main: "./index.js",
|
|
641
641
|
expectResourceCount: 1,
|
|
642
642
|
expectError: "Program exited with non-zero exit code: 1",
|
|
643
643
|
},
|
|
644
644
|
parent_child_dependencies_4: {
|
|
645
645
|
pwd: path.join(base, "024.parent_child_dependencies_4"),
|
|
646
|
-
|
|
646
|
+
main: "./index.js",
|
|
647
647
|
expectResourceCount: 3,
|
|
648
648
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
649
649
|
switch (name) {
|
|
@@ -664,7 +664,7 @@ describe("rpc", () => {
|
|
|
664
664
|
},
|
|
665
665
|
parent_child_dependencies_5: {
|
|
666
666
|
pwd: path.join(base, "025.parent_child_dependencies_5"),
|
|
667
|
-
|
|
667
|
+
main: "./index.js",
|
|
668
668
|
expectResourceCount: 4,
|
|
669
669
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
670
670
|
switch (name) {
|
|
@@ -691,7 +691,7 @@ describe("rpc", () => {
|
|
|
691
691
|
},
|
|
692
692
|
parent_child_dependencies_6: {
|
|
693
693
|
pwd: path.join(base, "026.parent_child_dependencies_6"),
|
|
694
|
-
|
|
694
|
+
main: "./index.js",
|
|
695
695
|
expectResourceCount: 6,
|
|
696
696
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
697
697
|
switch (name) {
|
|
@@ -725,7 +725,7 @@ describe("rpc", () => {
|
|
|
725
725
|
},
|
|
726
726
|
parent_child_dependencies_7: {
|
|
727
727
|
pwd: path.join(base, "027.parent_child_dependencies_7"),
|
|
728
|
-
|
|
728
|
+
main: "./index.js",
|
|
729
729
|
expectResourceCount: 10,
|
|
730
730
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
731
731
|
switch (name) {
|
|
@@ -774,7 +774,7 @@ describe("rpc", () => {
|
|
|
774
774
|
},
|
|
775
775
|
parent_child_dependencies_8: {
|
|
776
776
|
pwd: path.join(base, "028.parent_child_dependencies_8"),
|
|
777
|
-
|
|
777
|
+
main: "./index.js",
|
|
778
778
|
expectResourceCount: 6,
|
|
779
779
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
780
780
|
switch (name) {
|
|
@@ -804,7 +804,7 @@ describe("rpc", () => {
|
|
|
804
804
|
},
|
|
805
805
|
parent_child_dependencies_9: {
|
|
806
806
|
pwd: path.join(base, "029.parent_child_dependencies_9"),
|
|
807
|
-
|
|
807
|
+
main: "./index.js",
|
|
808
808
|
expectResourceCount: 3,
|
|
809
809
|
registerResource: (ctx, dryrun, t, name, res, deps) => {
|
|
810
810
|
switch (name) {
|
|
@@ -824,24 +824,24 @@ describe("rpc", () => {
|
|
|
824
824
|
},
|
|
825
825
|
},
|
|
826
826
|
run_error: {
|
|
827
|
-
|
|
827
|
+
pwd: path.join(base, "040.run_error"),
|
|
828
828
|
expectResourceCount: 0,
|
|
829
829
|
// We should get the error message saying that a message was reported and the
|
|
830
830
|
// host should bail.
|
|
831
831
|
expectBail: true,
|
|
832
832
|
},
|
|
833
833
|
component_opt_single_provider: {
|
|
834
|
-
|
|
834
|
+
pwd: path.join(base, "041.component_opt_single_provider"),
|
|
835
835
|
expectResourceCount: 240,
|
|
836
836
|
registerResource: parentDefaultsRegisterResource,
|
|
837
837
|
},
|
|
838
838
|
component_opt_providers_array: {
|
|
839
|
-
|
|
839
|
+
pwd: path.join(base, "042.component_opt_providers_array"),
|
|
840
840
|
expectResourceCount: 240,
|
|
841
841
|
registerResource: parentDefaultsRegisterResource,
|
|
842
842
|
},
|
|
843
843
|
depends_on_non_resource: {
|
|
844
|
-
|
|
844
|
+
pwd: path.join(base, "043.depends_on_non_resource"),
|
|
845
845
|
expectResourceCount: 0,
|
|
846
846
|
// We should get the error message saying that a message was reported and the
|
|
847
847
|
// host should bail.
|
|
@@ -859,7 +859,7 @@ describe("rpc", () => {
|
|
|
859
859
|
},
|
|
860
860
|
},
|
|
861
861
|
ignore_changes: {
|
|
862
|
-
|
|
862
|
+
pwd: path.join(base, "045.ignore_changes"),
|
|
863
863
|
expectResourceCount: 1,
|
|
864
864
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider, propertyDeps, ignoreChanges) => {
|
|
865
865
|
if (name === "testResource") {
|
|
@@ -873,7 +873,7 @@ describe("rpc", () => {
|
|
|
873
873
|
},
|
|
874
874
|
},
|
|
875
875
|
versions: {
|
|
876
|
-
|
|
876
|
+
pwd: path.join(base, "044.versions"),
|
|
877
877
|
expectResourceCount: 3,
|
|
878
878
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider, propertyDeps, ignoreChanges, version, importID, replaceOnChanges) => {
|
|
879
879
|
switch (name) {
|
|
@@ -933,7 +933,7 @@ describe("rpc", () => {
|
|
|
933
933
|
},
|
|
934
934
|
// A program that imports a single resource.
|
|
935
935
|
import_resource: {
|
|
936
|
-
|
|
936
|
+
pwd: path.join(base, "030.import_resource"),
|
|
937
937
|
expectResourceCount: 1,
|
|
938
938
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent, provider, propertyDeps, ignoreChanges, version, importID) => {
|
|
939
939
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -944,7 +944,7 @@ describe("rpc", () => {
|
|
|
944
944
|
},
|
|
945
945
|
// Test stack outputs via exports.
|
|
946
946
|
recursive_stack_exports: {
|
|
947
|
-
|
|
947
|
+
pwd: path.join(base, "046.recursive_stack_exports"),
|
|
948
948
|
expectResourceCount: 1,
|
|
949
949
|
showRootResourceRegistration: true,
|
|
950
950
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -968,7 +968,7 @@ describe("rpc", () => {
|
|
|
968
968
|
},
|
|
969
969
|
},
|
|
970
970
|
exported_function: {
|
|
971
|
-
|
|
971
|
+
pwd: path.join(base, "047.exported_function"),
|
|
972
972
|
expectResourceCount: 1,
|
|
973
973
|
showRootResourceRegistration: true,
|
|
974
974
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -994,7 +994,7 @@ describe("rpc", () => {
|
|
|
994
994
|
},
|
|
995
995
|
},
|
|
996
996
|
exported_promise_function: {
|
|
997
|
-
|
|
997
|
+
pwd: path.join(base, "048.exported_promise_function"),
|
|
998
998
|
expectResourceCount: 1,
|
|
999
999
|
showRootResourceRegistration: true,
|
|
1000
1000
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -1020,7 +1020,7 @@ describe("rpc", () => {
|
|
|
1020
1020
|
},
|
|
1021
1021
|
},
|
|
1022
1022
|
exported_async_function: {
|
|
1023
|
-
|
|
1023
|
+
pwd: path.join(base, "049.exported_async_function"),
|
|
1024
1024
|
expectResourceCount: 1,
|
|
1025
1025
|
showRootResourceRegistration: true,
|
|
1026
1026
|
registerResource: (ctx, dryrun, t, name, res, deps, custom, protect, parent) => {
|
|
@@ -1046,7 +1046,7 @@ describe("rpc", () => {
|
|
|
1046
1046
|
},
|
|
1047
1047
|
},
|
|
1048
1048
|
resource_creation_in_function: {
|
|
1049
|
-
|
|
1049
|
+
pwd: path.join(base, "050.resource_creation_in_function"),
|
|
1050
1050
|
expectResourceCount: 2,
|
|
1051
1051
|
showRootResourceRegistration: true,
|
|
1052
1052
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
@@ -1064,7 +1064,7 @@ describe("rpc", () => {
|
|
|
1064
1064
|
},
|
|
1065
1065
|
},
|
|
1066
1066
|
resource_creation_in_function_with_result: {
|
|
1067
|
-
|
|
1067
|
+
pwd: path.join(base, "051.resource_creation_in_function_with_result"),
|
|
1068
1068
|
expectResourceCount: 2,
|
|
1069
1069
|
showRootResourceRegistration: true,
|
|
1070
1070
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
@@ -1082,7 +1082,7 @@ describe("rpc", () => {
|
|
|
1082
1082
|
},
|
|
1083
1083
|
},
|
|
1084
1084
|
resource_creation_in_async_function_with_result: {
|
|
1085
|
-
|
|
1085
|
+
pwd: path.join(base, "052.resource_creation_in_async_function_with_result"),
|
|
1086
1086
|
expectResourceCount: 2,
|
|
1087
1087
|
showRootResourceRegistration: true,
|
|
1088
1088
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
@@ -1100,7 +1100,7 @@ describe("rpc", () => {
|
|
|
1100
1100
|
},
|
|
1101
1101
|
},
|
|
1102
1102
|
provider_invokes: {
|
|
1103
|
-
|
|
1103
|
+
pwd: path.join(base, "060.provider_invokes"),
|
|
1104
1104
|
expectResourceCount: 1,
|
|
1105
1105
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
1106
1106
|
return { urn: makeUrn(t, name), id: name === "p" ? "1" : undefined, props: undefined };
|
|
@@ -1119,7 +1119,7 @@ describe("rpc", () => {
|
|
|
1119
1119
|
},
|
|
1120
1120
|
},
|
|
1121
1121
|
provider_in_parent_invokes: {
|
|
1122
|
-
|
|
1122
|
+
pwd: path.join(base, "061.provider_in_parent_invokes"),
|
|
1123
1123
|
expectResourceCount: 2,
|
|
1124
1124
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider) => {
|
|
1125
1125
|
return { urn: makeUrn(t, name), id: name === "p" ? "1" : undefined, props: undefined };
|
|
@@ -1138,7 +1138,7 @@ describe("rpc", () => {
|
|
|
1138
1138
|
},
|
|
1139
1139
|
},
|
|
1140
1140
|
providerref_invokes: {
|
|
1141
|
-
|
|
1141
|
+
pwd: path.join(base, "062.providerref_invokes"),
|
|
1142
1142
|
expectResourceCount: 1,
|
|
1143
1143
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
1144
1144
|
return { urn: makeUrn(t, name), id: name === "p" ? "1" : undefined, props: undefined };
|
|
@@ -1157,7 +1157,7 @@ describe("rpc", () => {
|
|
|
1157
1157
|
},
|
|
1158
1158
|
},
|
|
1159
1159
|
providerref_in_parent_invokes: {
|
|
1160
|
-
|
|
1160
|
+
pwd: path.join(base, "063.providerref_in_parent_invokes"),
|
|
1161
1161
|
expectResourceCount: 2,
|
|
1162
1162
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider) => {
|
|
1163
1163
|
if (name === "c") {
|
|
@@ -1179,7 +1179,7 @@ describe("rpc", () => {
|
|
|
1179
1179
|
},
|
|
1180
1180
|
},
|
|
1181
1181
|
async_components: {
|
|
1182
|
-
|
|
1182
|
+
pwd: path.join(base, "064.async_components"),
|
|
1183
1183
|
expectResourceCount: 5,
|
|
1184
1184
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider) => {
|
|
1185
1185
|
if (name === "c" || name === "d") {
|
|
@@ -1194,7 +1194,7 @@ describe("rpc", () => {
|
|
|
1194
1194
|
},
|
|
1195
1195
|
// Create a resource with a large string to test grpcMaxMessageSize increase.
|
|
1196
1196
|
large_resource: {
|
|
1197
|
-
|
|
1197
|
+
pwd: path.join(base, "065.large_resource"),
|
|
1198
1198
|
expectResourceCount: 1,
|
|
1199
1199
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
1200
1200
|
const longString = "a".repeat(1024 * 1024 * 5);
|
|
@@ -1211,7 +1211,7 @@ describe("rpc", () => {
|
|
|
1211
1211
|
},
|
|
1212
1212
|
},
|
|
1213
1213
|
replace_on_changes: {
|
|
1214
|
-
|
|
1214
|
+
pwd: path.join(base, "066.replace_on_changes"),
|
|
1215
1215
|
expectResourceCount: 1,
|
|
1216
1216
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider, propertyDeps, ignoreChanges, version, importID, replaceOnChanges) => {
|
|
1217
1217
|
if (name === "testResource") {
|
|
@@ -1227,7 +1227,8 @@ describe("rpc", () => {
|
|
|
1227
1227
|
// A program that allocates a single resource using a native ES module
|
|
1228
1228
|
native_es_module: {
|
|
1229
1229
|
// Dynamic import won't automatically resolve to /index.js on a directory, specifying explicitly
|
|
1230
|
-
|
|
1230
|
+
pwd: path.join(base, "067.native_es_module"),
|
|
1231
|
+
main: "./index.js",
|
|
1231
1232
|
expectResourceCount: 1,
|
|
1232
1233
|
registerResource: (ctx, dryrun, t, name, res) => {
|
|
1233
1234
|
assert_1.default.strictEqual(t, "test:index:MyResource");
|
|
@@ -1236,7 +1237,7 @@ describe("rpc", () => {
|
|
|
1236
1237
|
},
|
|
1237
1238
|
},
|
|
1238
1239
|
remote_component_providers: {
|
|
1239
|
-
|
|
1240
|
+
pwd: path.join(base, "068.remote_component_providers"),
|
|
1240
1241
|
expectResourceCount: 8,
|
|
1241
1242
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider, propertyDeps, ignoreChanges, version, importID, replaceOnChanges, providers) => {
|
|
1242
1243
|
if (name === "singular" || name === "map" || name === "array") {
|
|
@@ -1251,7 +1252,7 @@ describe("rpc", () => {
|
|
|
1251
1252
|
},
|
|
1252
1253
|
},
|
|
1253
1254
|
ambiguous_entrypoints: {
|
|
1254
|
-
|
|
1255
|
+
pwd: path.join(base, "069.ambiguous_entrypoints"),
|
|
1255
1256
|
expectResourceCount: 1,
|
|
1256
1257
|
expectedLogs: {
|
|
1257
1258
|
count: 1,
|
|
@@ -1263,28 +1264,28 @@ describe("rpc", () => {
|
|
|
1263
1264
|
},
|
|
1264
1265
|
},
|
|
1265
1266
|
unusual_alias_names: {
|
|
1266
|
-
|
|
1267
|
+
pwd: path.join(base, "070.unusual_alias_names"),
|
|
1267
1268
|
expectResourceCount: 4,
|
|
1268
1269
|
registerResource: (ctx, dryrun, t, name, res, ...args) => {
|
|
1269
1270
|
return { urn: makeUrn(t, name), id: undefined, props: undefined };
|
|
1270
1271
|
},
|
|
1271
1272
|
},
|
|
1272
1273
|
large_alias_counts: {
|
|
1273
|
-
|
|
1274
|
+
pwd: path.join(base, "071.large_alias_counts"),
|
|
1274
1275
|
expectResourceCount: 1,
|
|
1275
1276
|
registerResource: (ctx, dryrun, t, name, res, ...args) => {
|
|
1276
1277
|
return { urn: makeUrn(t, name), id: undefined, props: undefined };
|
|
1277
1278
|
},
|
|
1278
1279
|
},
|
|
1279
1280
|
large_alias_lineage_chains: {
|
|
1280
|
-
|
|
1281
|
+
pwd: path.join(base, "072.large_alias_lineage_chains"),
|
|
1281
1282
|
expectResourceCount: 3,
|
|
1282
1283
|
registerResource: (ctx, dryrun, t, name, res, ...args) => {
|
|
1283
1284
|
return { urn: makeUrn(t, name), id: undefined, props: undefined };
|
|
1284
1285
|
},
|
|
1285
1286
|
},
|
|
1286
1287
|
component_dependencies: {
|
|
1287
|
-
|
|
1288
|
+
pwd: path.join(base, "073.component_dependencies"),
|
|
1288
1289
|
expectResourceCount: 4,
|
|
1289
1290
|
registerResource: (ctx, dryrun, t, name, res, dependencies, ...args) => {
|
|
1290
1291
|
if (name === "second") {
|
|
@@ -1294,7 +1295,7 @@ describe("rpc", () => {
|
|
|
1294
1295
|
},
|
|
1295
1296
|
},
|
|
1296
1297
|
source_position: {
|
|
1297
|
-
|
|
1298
|
+
pwd: path.join(base, "074.source_position"),
|
|
1298
1299
|
expectResourceCount: 2,
|
|
1299
1300
|
registerResource: (ctx, dryrun, t, name, res, dependencies, custom, protect, parent, provider, propertyDeps, ignoreChanges, version, importID, replaceOnChanges, providers, sourcePosition) => {
|
|
1300
1301
|
assert_1.default(sourcePosition !== undefined);
|
|
@@ -1322,7 +1323,7 @@ describe("rpc", () => {
|
|
|
1322
1323
|
runCleanup();
|
|
1323
1324
|
}));
|
|
1324
1325
|
const testFn = opts.only ? it.only : it;
|
|
1325
|
-
testFn(`run test: ${casename} (pwd=${opts.pwd},
|
|
1326
|
+
testFn(`run test: ${casename} (pwd=${opts.pwd},main=${opts.main})`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
1326
1327
|
// For each test case, run it twice: first to preview and then to update.
|
|
1327
1328
|
for (const dryrun of [true, false]) {
|
|
1328
1329
|
// console.log(dryrun ? "PREVIEW:" : "UPDATE:");
|
|
@@ -1553,10 +1554,8 @@ function mockRun(langHostClient, monitor, opts, dryrun) {
|
|
|
1553
1554
|
runReq.setMonitorAddress(monitor);
|
|
1554
1555
|
runReq.setProject(opts.project || "project");
|
|
1555
1556
|
runReq.setStack(opts.stack || "stack");
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
}
|
|
1559
|
-
runReq.setProgram(opts.program);
|
|
1557
|
+
runReq.setPwd(opts.pwd);
|
|
1558
|
+
runReq.setProgram(opts.main || ".");
|
|
1560
1559
|
if (opts.args) {
|
|
1561
1560
|
runReq.setArgsList(opts.args);
|
|
1562
1561
|
}
|
|
@@ -1566,9 +1565,28 @@ function mockRun(langHostClient, monitor, opts, dryrun) {
|
|
|
1566
1565
|
cfgmap.set(cfgkey, opts.config[cfgkey]);
|
|
1567
1566
|
}
|
|
1568
1567
|
}
|
|
1568
|
+
const info = new langproto.ProgramInfo();
|
|
1569
|
+
info.setEntryPoint(opts.main || ".");
|
|
1570
|
+
info.setRootDirectory(opts.pwd);
|
|
1571
|
+
info.setProgramDirectory(opts.pwd);
|
|
1572
|
+
runReq.setInfo(info);
|
|
1569
1573
|
runReq.setDryrun(dryrun);
|
|
1570
1574
|
langHostClient.run(runReq, (err, res) => {
|
|
1571
|
-
if (err) {
|
|
1575
|
+
if (err && err.message.indexOf("UNAVAILABLE") !== 0) {
|
|
1576
|
+
// Sometimes it takes a little bit until the engine is ready to accept connections. We'll
|
|
1577
|
+
// retry after a short delay.
|
|
1578
|
+
setTimeout(() => {
|
|
1579
|
+
langHostClient.run(runReq, (e, r) => {
|
|
1580
|
+
if (e) {
|
|
1581
|
+
reject(e);
|
|
1582
|
+
}
|
|
1583
|
+
else {
|
|
1584
|
+
resolve([r.getError(), r.getBail()]);
|
|
1585
|
+
}
|
|
1586
|
+
});
|
|
1587
|
+
}, 200);
|
|
1588
|
+
}
|
|
1589
|
+
else if (err) {
|
|
1572
1590
|
reject(err);
|
|
1573
1591
|
}
|
|
1574
1592
|
else {
|