passsy / name-page-widgetsr4
Call Screen Widgets *Page
PublicName a widget that a route pushes *Page in *_page.dart, never *Screen, because Flutter already calls a route's configuration a Page and a screen is hardware.
tests, run by the registry13 passed · slowest 4.0 ms
- The advice links to api.flutter.dev, wellactually.dev
✓fires3.7 ms
fires on class LoginScreen extends StatelessWidget {
write lib/login_screen.dartfired: line 2
/// The login screen.
class LoginScreen extends StatelessWidget {
const LoginScreen();
}
✓fires4.0 ms
fires on class LoginScreen extends ConsumerStatefulWidget {
write lib/login_screen.dartfired: line 2
/// The login screen.
class LoginScreen extends ConsumerStatefulWidget {
const LoginScreen();
}
✓fires3.7 ms
fires on class LoginScreen extends HookConsumerWidget {
write lib/login_screen.dartfired: line 2
/// The login screen.
class LoginScreen extends HookConsumerWidget {
const LoginScreen();
}
✓fires3.5 ms
fires on class LoginScreen<T> extends StatelessWidget {
write lib/login_screen.dartfired: line 2
/// The login screen.
class LoginScreen<T> extends StatelessWidget {
const LoginScreen();
}
✓fires2.6 ms
fires on class LoginScreen extends StatelessWidget with Diagnosticable {
write lib/login_screen.dartfired: line 2
/// The login screen.
class LoginScreen extends StatelessWidget with Diagnosticable {
const LoginScreen();
}
✓quiet2.6 ms
stays quiet on class ScreenMetrics {
write lib/login_screen.dartstayed quiet
/// The login screen.
class ScreenMetrics {
const LoginScreen();
}
✓quiet2.3 ms
stays quiet on class LoginScreen extends ChangeNotifier {
write lib/login_screen.dartstayed quiet
/// The login screen.
class LoginScreen extends ChangeNotifier {
const LoginScreen();
}
✓quiet2.3 ms
stays quiet on class ScreenSizeBuilder extends StatelessWidget {
write lib/login_screen.dartstayed quiet
/// The login screen.
class ScreenSizeBuilder extends StatelessWidget {
const LoginScreen();
}
✓quiet2.9 ms
stays quiet on class LoginPage extends StatelessWidget {
write lib/login_screen.dartstayed quiet
/// The login screen.
class LoginPage extends StatelessWidget {
const LoginScreen();
}
✓quiet2.9 ms
stays quiet on an existing *Screen the edit did not touch
write lib/login_screen.dart · wrote line 3stayed quiet
/// The login screen.
class LoginScreen extends StatelessWidget {
const LoginScreen();
}
✓skips0.0 ms
stays quiet when the agent only reads the file
read lib/login_screen.dartno handler of the detector wants this event
/// The login screen.
class LoginScreen extends StatelessWidget {
const LoginScreen();
}
✓skips0.0 ms
stays quiet in a test file
write test/login_screen_test.dartno handler of the detector wants this event
class FakeScreen extends StatelessWidget {}✓skips0.0 ms
stays quiet on an ordinary sentence about a screen
promptno handler of the detector wants this event
the login screen is too small on a phonedetector.test.tseach detect() call runs the real detectorEdit
import { expect, test } from "vitest";
import { detect, edit, prompt, read, write } from "@wellactually/sdk/v3/test";
function widget(declaration: string): string {
return ["/// The login screen.", declaration, " const LoginScreen();", "}", ""].join("\n");
}
test.each([
"class LoginScreen extends StatelessWidget {",
"class LoginScreen extends ConsumerStatefulWidget {",
"class LoginScreen extends HookConsumerWidget {",
"class LoginScreen<T> extends StatelessWidget {",
"class LoginScreen extends StatelessWidget with Diagnosticable {",
])("fires on %s", (declaration) => {
expect(detect(write("lib/login_screen.dart", widget(declaration)))).toEqual([{ line: 2 }]);
});
test.each([
"class ScreenMetrics {",
"class LoginScreen extends ChangeNotifier {",
"class ScreenSizeBuilder extends StatelessWidget {",
"class LoginPage extends StatelessWidget {",
])("stays quiet on %s", (declaration) => {
expect(detect(write("lib/login_screen.dart", widget(declaration)))).toEqual([]);
});
test("stays quiet on an existing *Screen the edit did not touch", () => {
const content = widget("class LoginScreen extends StatelessWidget {");
expect(detect(edit("lib/login_screen.dart", content, { written: " const LoginScreen();" }))).toEqual([]);
});
test("stays quiet when the agent only reads the file", () => {
expect(detect(read("lib/login_screen.dart", widget("class LoginScreen extends StatelessWidget {")))).toEqual([]);
});
test("stays quiet in a test file", () => {
expect(detect(write("test/login_screen_test.dart", "class FakeScreen extends StatelessWidget {}"))).toEqual([]);
});
test("stays quiet on an ordinary sentence about a screen", () => {
expect(detect(prompt("the login screen is too small on a phone"))).toEqual([]);
});