@@ -5,10 +5,14 @@ package software.aws.toolkits.jetbrains.services.lambda.go
5
5
6
6
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
7
7
import com.fasterxml.jackson.module.kotlin.readValue
8
+ import com.goide.sdk.GoSdk
9
+ import com.goide.sdk.GoSdkService
10
+ import com.goide.sdk.GoSdkUtil
8
11
import com.goide.vgo.VgoTestUtil
9
12
import com.intellij.execution.executors.DefaultDebugExecutor
10
13
import com.intellij.openapi.application.ApplicationInfo
11
14
import com.intellij.openapi.module.WebModuleTypeBase
15
+ import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess
12
16
import com.intellij.testFramework.PsiTestUtil
13
17
import com.intellij.testFramework.fixtures.CodeInsightTestFixture
14
18
import com.intellij.testFramework.runInEdtAndWait
@@ -181,8 +185,6 @@ class GoLocalRunConfigurationIntegrationTest(private val runtime: LambdaRuntime)
181
185
182
186
@Test
183
187
fun samIsExecutedWithDebugger () {
184
- // only run this test on > 2020.1. FIX_WHEN_MIN_IS_202
185
- assumeFalse(ApplicationInfo .getInstance().let { info -> (info.majorVersion == " 2020" && info.minorVersionMainPart == " 1" ) })
186
188
projectRule.fixture.addLambdaFile(fileContents)
187
189
188
190
val runConfiguration = createHandlerBasedRunConfiguration(
@@ -207,6 +209,32 @@ class GoLocalRunConfigurationIntegrationTest(private val runtime: LambdaRuntime)
207
209
assertThat(debuggerIsHit.get()).isTrue
208
210
}
209
211
212
+ @Test
213
+ fun `works when handler is 'main'` () {
214
+ assumeFalse(true ) // TODO: fix when new build images are ready
215
+ // fails if [Lambda.findPsiElementsForHandler] finds the handler in the Go standard library
216
+ val sdkDir = GoSdkUtil .suggestSdkDirectory()!! .children.sortedByDescending { it.name }.first().canonicalPath!!
217
+ VfsRootAccess .allowRootAccess(projectRule.project, sdkDir)
218
+ runInEdtAndWait {
219
+ GoSdkService .getInstance(projectRule.project).setSdk(GoSdk .fromHomePath(sdkDir))
220
+ }
221
+ projectRule.fixture.addLambdaFile(fileContents)
222
+
223
+ val runConfiguration = createHandlerBasedRunConfiguration(
224
+ project = projectRule.project,
225
+ runtime = runtime.toSdkRuntime(),
226
+ handler = " main" ,
227
+ input = " \" ${input} \" " ,
228
+ credentialsProviderId = mockId
229
+ )
230
+
231
+ assertThat(runConfiguration).isNotNull
232
+
233
+ val executeLambda = executeRunConfigurationAndWait(runConfiguration, DefaultDebugExecutor .EXECUTOR_ID )
234
+
235
+ assertThat(executeLambda.exitCode).isEqualTo(0 )
236
+ }
237
+
210
238
@Test
211
239
fun samIsExecutedImage (): Unit = samImageRunDebugTest(
212
240
projectRule = projectRule,
0 commit comments