poc: implement cross-platform robot factory architecture#4461
poc: implement cross-platform robot factory architecture#4461tddang-linagora wants to merge 1 commit intopatrol/webfrom
Conversation
Introduces Abstract Factory + conditional export infrastructure from ADR-0081. Platform selection resolved at compile time via dart.library.html — no if/else in any logic class. New structure: - factories/: RobotFactory, Mobile/WebRobotFactory, conditional provider - robots/abstract/: AbstractLogin/Thread/ComposerRobot interfaces - robots/mobile/: thin wrappers over existing robots - robots/web/: WebComposerRobot overrides addContent for web Migrates all scenarios/tests to new BaseTestScenario(super.$, super.robots) API. SendEmailScenario is the reference implementation using abstract robots.
There was a problem hiding this comment.
Gates Passed
3 Quality Gates Passed
See analysis details in CodeScene
Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| void runPatrolTest({ | ||
| required String description, | ||
| required BaseScenario Function(PatrolIntegrationTester $) scenarioBuilder, | ||
| List<TestTags> tags = const [], |
There was a problem hiding this comment.
we should keep, but for other use not for mobile/web seperately
|
This PR has been deployed to https://linagora.github.io/tmail-flutter/4461. |
Docs
Introduces Abstract Factory + conditional export infrastructure from ADR-0081. Platform selection resolved at compile time via dart.library.html — no if/else in any logic class.
New structure:
Migrates all scenarios/tests to new BaseTestScenario(super.$, super.robots) API. SendEmailScenario is the reference implementation using abstract robots.