flutter / flutter/flutter-intellij

Can't configure a FlutterTestUtils with a fake SDK

Open
#2,878 2 comments 0 reactions 0 assignees View on GitHub
testing-infra
Dominant language
Java
Stars
2k
Forks
356
Avg merge
1d 11h
Merged PRs (30d)
27

Description

I'm trying to write a test that uses a fake Flutter SDK instead of a real one.

To do this, I've tried using the FlutterModuleFixture with an option to fake out the SDK. This option exists on the FlutterTestUtils, but doesn't appear to be used anywhere in our test code. See https://github.com/DaveShuckerow/flutter-intellij/pull/new/run-mode for what I did.

java.lang.IllegalStateException: @NotNull method io/flutter/sdk/FlutterSdkManager.getInstance must not return null

at io.flutter.sdk.FlutterSdkManager.$$$reportNull$$$0(FlutterSdkManager.java)
at io.flutter.sdk.FlutterSdkManager.getInstance(FlutterSdkManager.java:34)
at io.flutter.sdk.FlutterSdkUtil.setFlutterSdkPath(FlutterSdkUtil.java:230)
at io.flutter.testing.FlutterTestUtils.lambda$configureFlutterSdk$0(FlutterTestUtils.java:51)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1038)
at io.flutter.testing.FlutterTestUtils.configureFlutterSdk(FlutterTestUtils.java:50)
at io.flutter.testing.FlutterModuleFixture.lambda$before$1(FlutterModuleFixture.java:36)
at io.flutter.testing.Testing.lambda$runOnDispatchThread$7(Testing.java:103)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransactionAndWait$2(TransactionGuardImpl.java:165)
at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88)
at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:447)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:431)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:415)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:817)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:758)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:394)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.