@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.
@@ -72,24 +72,24 @@ describe("rpc", () => {
72
72
  const cases = {
73
73
  // An empty program.
74
74
  empty: {
75
- program: path.join(base, "000.empty"),
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
- program: "./",
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
- program: "./index.js",
87
+ main: "./index.js",
88
88
  expectResourceCount: 0,
89
89
  },
90
90
  // A program that allocates a single resource.
91
91
  one_resource: {
92
- program: path.join(base, "001.one_resource"),
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
- program: path.join(base, "002.ten_resources"),
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
- program: path.join(base, "003.one_complex_resource"),
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
- program: path.join(base, "004.ten_complex_resources"),
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
- program: path.join(base, "005.resource_thens"),
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
- program: path.join(base, "008.ten_depends_on_resources"),
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
- program: path.join(base, "009.invoke"),
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
- program: path.join(base, "010.runtime_settings"),
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
- program: path.join(base, "011.unhandled_error"),
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
- program: path.join(base, "012.assets_archive"),
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
- program: path.join(base, "013.unhandled_promise_rejection"),
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
- program: path.join(base, "014.read_resource"),
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
- program: path.join(base, "015.runtime_sxs"),
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
- program: path.join(base, "016.promise_leak"),
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
- program: path.join(base, "017.parent_defaults"),
453
+ pwd: path.join(base, "017.parent_defaults"),
454
454
  expectResourceCount: 240,
455
455
  registerResource: parentDefaultsRegisterResource,
456
456
  },
457
457
  logging: {
458
- program: path.join(base, "018.logging"),
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
- program: path.join(base, "019.stack_exports"),
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
- program: path.join(base, "001.one_resource"),
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
- program: path.join(base, "001.one_resource"),
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
- program: path.join(base, "020.property_dependencies"),
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: "./index.js",
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
- program: path.join(base, "040.run_error"),
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
- program: path.join(base, "041.component_opt_single_provider"),
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
- program: path.join(base, "042.component_opt_providers_array"),
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
- program: path.join(base, "043.depends_on_non_resource"),
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
- program: path.join(base, "045.ignore_changes"),
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
- program: path.join(base, "044.versions"),
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
- program: path.join(base, "030.import_resource"),
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
- program: path.join(base, "046.recursive_stack_exports"),
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
- program: path.join(base, "047.exported_function"),
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
- program: path.join(base, "048.exported_promise_function"),
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
- program: path.join(base, "049.exported_async_function"),
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
- program: path.join(base, "050.resource_creation_in_function"),
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
- program: path.join(base, "051.resource_creation_in_function_with_result"),
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
- program: path.join(base, "052.resource_creation_in_async_function_with_result"),
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
- program: path.join(base, "060.provider_invokes"),
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
- program: path.join(base, "061.provider_in_parent_invokes"),
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
- program: path.join(base, "062.providerref_invokes"),
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
- program: path.join(base, "063.providerref_in_parent_invokes"),
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
- program: path.join(base, "064.async_components"),
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
- program: path.join(base, "065.large_resource"),
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
- program: path.join(base, "066.replace_on_changes"),
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
- program: path.join(base, "067.native_es_module/index.js"),
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
- program: path.join(base, "068.remote_component_providers"),
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
- program: path.join(base, "069.ambiguous_entrypoints"),
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
- program: path.join(base, "070.unusual_alias_names"),
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
- program: path.join(base, "071.large_alias_counts"),
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
- program: path.join(base, "072.large_alias_lineage_chains"),
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
- program: path.join(base, "073.component_dependencies"),
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
- program: path.join(base, "074.source_position"),
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},prog=${opts.program})`, () => __awaiter(void 0, void 0, void 0, function* () {
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
- if (opts.pwd) {
1557
- runReq.setPwd(opts.pwd);
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 {