22
33import static org .hamcrest .MatcherAssert .assertThat ;
44import static org .hamcrest .Matchers .containsString ;
5+ import static org .hamcrest .Matchers .not ;
56
67import org .junit .jupiter .api .Test ;
78import software .amazon .smithy .build .MockManifest ;
89import software .amazon .smithy .build .PluginContext ;
910import software .amazon .smithy .model .Model ;
1011import software .amazon .smithy .model .node .Node ;
1112import software .amazon .smithy .typescript .codegen .TypeScriptCodegenPlugin ;
13+ import software .amazon .smithy .typescript .codegen .TypeScriptDependency ;
1214
1315public class AddAwsRuntimeConfigTest {
1416 @ Test
15- public void addsAwsRuntimeConfigSettings () {
17+ public void awsClient () {
1618 Model model = Model .assembler ()
1719 .addImport (getClass ().getResource ("NotSame.smithy" ))
1820 .discoverModels ()
@@ -31,15 +33,127 @@ public void addsAwsRuntimeConfigSettings() {
3133 .build ();
3234 new TypeScriptCodegenPlugin ().execute (context );
3335
34- // Check that one of the many dependencies was added.
36+ // Check dependencies
3537 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:" ));
37150
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: " ));
41154
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:" ));
44158 }
45159}
0 commit comments