2
2
3
3
import static org .hamcrest .MatcherAssert .assertThat ;
4
4
import static org .hamcrest .Matchers .containsString ;
5
+ import static org .hamcrest .Matchers .not ;
5
6
6
7
import org .junit .jupiter .api .Test ;
7
8
import software .amazon .smithy .build .MockManifest ;
8
9
import software .amazon .smithy .build .PluginContext ;
9
10
import software .amazon .smithy .model .Model ;
10
11
import software .amazon .smithy .model .node .Node ;
11
12
import software .amazon .smithy .typescript .codegen .TypeScriptCodegenPlugin ;
13
+ import software .amazon .smithy .typescript .codegen .TypeScriptDependency ;
12
14
13
15
public class AddAwsRuntimeConfigTest {
14
16
@ Test
15
- public void addsAwsRuntimeConfigSettings () {
17
+ public void awsClient () {
16
18
Model model = Model .assembler ()
17
19
.addImport (getClass ().getResource ("NotSame.smithy" ))
18
20
.discoverModels ()
@@ -31,15 +33,127 @@ public void addsAwsRuntimeConfigSettings() {
31
33
.build ();
32
34
new TypeScriptCodegenPlugin ().execute (context );
33
35
34
- // Check that one of the many dependencies was added.
36
+ // Check dependencies
35
37
assertThat (manifest .getFileString ("package.json" ).get (),
36
- containsString (AwsDependency .CREDENTIAL_PROVIDER_NODE .packageName ));
38
+ containsString (AwsDependency .NODE_CONFIG_PROVIDER .packageName ));
39
+ assertThat (manifest .getFileString ("package.json" ).get (),
40
+ containsString (TypeScriptDependency .CONFIG_RESOLVER .packageName ));
41
+ assertThat (manifest .getFileString ("package.json" ).get (),
42
+ containsString (TypeScriptDependency .MIDDLEWARE_RETRY .packageName ));
43
+
44
+ // Check config interface fields
45
+ assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("serviceId?:" ));
46
+ assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("region?:" ));
47
+ assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("maxAttempts?:" ));
48
+ assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("retryModeProvider?:" ));
49
+ assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("logger?:" ));
50
+
51
+ // Check config files
52
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), containsString ("serviceId: \" Not Same\" " ));
53
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), containsString ("logger:" ));
54
+
55
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("region: invalidProvider" ));
56
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("maxAttempts:" ));
57
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("retryModeProvider:" ));
58
+
59
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("region: loadNodeConfig" ));
60
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("maxAttempts:" ));
61
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("retryModeProvider:" ));
62
+ }
63
+
64
+ @ Test
65
+ public void sigV4GenericClient () {
66
+ Model model = Model .assembler ()
67
+ .addImport (getClass ().getResource ("SsdkExampleSigV4.smithy" ))
68
+ .discoverModels ()
69
+ .assemble ()
70
+ .unwrap ();
71
+ MockManifest manifest = new MockManifest ();
72
+ PluginContext context = PluginContext .builder ()
73
+ .pluginClassLoader (getClass ().getClassLoader ())
74
+ .model (model )
75
+ .fileManifest (manifest )
76
+ .settings (Node .objectNodeBuilder ()
77
+ .withMember ("service" , Node .from ("smithy.example#SsdkExampleSigV4" ))
78
+ .withMember ("package" , Node .from ("example" ))
79
+ .withMember ("packageVersion" , Node .from ("1.0.0" ))
80
+ .build ())
81
+ .build ();
82
+ new TypeScriptCodegenPlugin ().execute (context );
83
+
84
+ // Check dependencies
85
+ assertThat (manifest .getFileString ("package.json" ).get (),
86
+ containsString (AwsDependency .NODE_CONFIG_PROVIDER .packageName ));
87
+ assertThat (manifest .getFileString ("package.json" ).get (),
88
+ containsString (TypeScriptDependency .CONFIG_RESOLVER .packageName ));
89
+ assertThat (manifest .getFileString ("package.json" ).get (),
90
+ containsString (TypeScriptDependency .MIDDLEWARE_RETRY .packageName ));
91
+
92
+ // Check config interface fields
93
+ assertThat (manifest .getFileString ("SsdkExampleSigV4Client.ts" ).get (), not (containsString ("serviceId?:" )));
94
+ assertThat (manifest .getFileString ("SsdkExampleSigV4Client.ts" ).get (), containsString ("region?:" ));
95
+ assertThat (manifest .getFileString ("SsdkExampleSigV4Client.ts" ).get (), containsString ("maxAttempts?:" ));
96
+ assertThat (manifest .getFileString ("SsdkExampleSigV4Client.ts" ).get (), containsString ("retryModeProvider?:" ));
97
+ assertThat (manifest .getFileString ("SsdkExampleSigV4Client.ts" ).get (), containsString ("logger?:" ));
98
+
99
+ // Check config files
100
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), not (containsString ("serviceId:" )));
101
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), containsString ("logger:" ));
102
+
103
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("region: invalidProvider" ));
104
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("maxAttempts:" ));
105
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("retryModeProvider:" ));
106
+
107
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("region: loadNodeConfig" ));
108
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("maxAttempts:" ));
109
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("retryModeProvider:" ));
110
+ }
111
+
112
+ @ Test
113
+ public void notSigV4GenericClient () {
114
+ Model model = Model .assembler ()
115
+ .addImport (getClass ().getResource ("SsdkExample.smithy" ))
116
+ .discoverModels ()
117
+ .assemble ()
118
+ .unwrap ();
119
+ MockManifest manifest = new MockManifest ();
120
+ PluginContext context = PluginContext .builder ()
121
+ .pluginClassLoader (getClass ().getClassLoader ())
122
+ .model (model )
123
+ .fileManifest (manifest )
124
+ .settings (Node .objectNodeBuilder ()
125
+ .withMember ("service" , Node .from ("smithy.example#SsdkExample" ))
126
+ .withMember ("package" , Node .from ("example" ))
127
+ .withMember ("packageVersion" , Node .from ("1.0.0" ))
128
+ .build ())
129
+ .build ();
130
+ new TypeScriptCodegenPlugin ().execute (context );
131
+
132
+ // Check dependencies
133
+ assertThat (manifest .getFileString ("package.json" ).get (),
134
+ containsString (AwsDependency .NODE_CONFIG_PROVIDER .packageName ));
135
+ assertThat (manifest .getFileString ("package.json" ).get (),
136
+ containsString (TypeScriptDependency .CONFIG_RESOLVER .packageName ));
137
+ assertThat (manifest .getFileString ("package.json" ).get (),
138
+ containsString (TypeScriptDependency .MIDDLEWARE_RETRY .packageName ));
139
+
140
+ // Check config interface fields
141
+ assertThat (manifest .getFileString ("SsdkExampleClient.ts" ).get (), not (containsString ("serviceId?:" )));
142
+ assertThat (manifest .getFileString ("SsdkExampleClient.ts" ).get (), not (containsString ("region?:" )));
143
+ assertThat (manifest .getFileString ("SsdkExampleClient.ts" ).get (), containsString ("maxAttempts?:" ));
144
+ assertThat (manifest .getFileString ("SsdkExampleClient.ts" ).get (), containsString ("retryModeProvider?:" ));
145
+ assertThat (manifest .getFileString ("SsdkExampleClient.ts" ).get (), containsString ("logger?:" ));
146
+
147
+ // Check config files
148
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), not (containsString ("serviceId:" )));
149
+ assertThat (manifest .getFileString ("runtimeConfig.shared.ts" ).get (), containsString ("logger:" ));
37
150
38
- // Check that both the config files were updated.
39
- assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("credentialDefaultProvider " ));
40
- assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("invalidProvider " ));
151
+ assertThat ( manifest . getFileString ( "runtimeConfig.browser.ts" ). get (), not ( containsString ( "region:" )));
152
+ assertThat (manifest .getFileString ("runtimeConfig.browser. ts" ).get (), containsString ("maxAttempts: " ));
153
+ assertThat (manifest .getFileString ("runtimeConfig.browser.ts" ).get (), containsString ("retryModeProvider: " ));
41
154
42
- // Check that the dependency interface was updated.
43
- assertThat (manifest .getFileString ("NotSameClient.ts" ).get (), containsString ("credentialDefaultProvider?" ));
155
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), not (containsString ("region:" )));
156
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("maxAttempts:" ));
157
+ assertThat (manifest .getFileString ("runtimeConfig.ts" ).get (), containsString ("retryModeProvider:" ));
44
158
}
45
159
}
0 commit comments