From 333026143b26ab7e5629af65a70b0952f994348b Mon Sep 17 00:00:00 2001 From: b-dev-mobile Date: Mon, 13 Jul 2026 09:19:32 +0000 Subject: [PATCH] =?UTF-8?q?test(designsystem):=20Roborazzi=20screenshot-?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D0=BA=D0=B0=D1=81=20=E2=80=94=20=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B5=D1=80=20Compose=20=D0=B2=20PNG=20=D0=BD?= =?UTF-8?q?=D0=B0=20JVM=20(Fd-=D1=81=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=20=D1=8D=D0=BC=D1=83=D0=BB=D1=8F=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Пилот: F7PrimaryButton/F7SecondaryButton рендерятся в PNG (390dp xxhdpi) через Robolectric+Roborazzi, recordRoborazziDebug зелёный. Основа автономного Fd-прохода: экран → PNG → сравнение с веб-мобильной forbion. Роли добавляют тесты на свои экраны. --- build.gradle | 1 + core/designsystem/build.gradle | 17 ++++++ .../core/designsystem/ScreenshotProofTest.kt | 50 ++++++++++++++++++ .../test/screenshots/proof-primary-button.png | Bin 0 -> 97180 bytes gradle/libs.versions.toml | 9 ++++ 5 files changed, 77 insertions(+) create mode 100644 core/designsystem/src/test/java/ru/forbion/f7cloud/core/designsystem/ScreenshotProofTest.kt create mode 100644 core/designsystem/src/test/screenshots/proof-primary-button.png diff --git a/build.gradle b/build.gradle index d6617f2..748a87c 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,7 @@ plugins { id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.0' apply false id 'org.jetbrains.kotlin.plugin.parcelize' version '2.3.0' apply false id 'com.google.devtools.ksp' version '2.3.4' apply false + id 'io.github.takahirom.roborazzi' version '1.42.0' apply false id 'com.google.gms.google-services' version '4.4.2' apply false id 'io.gitlab.arturbosch.detekt' version '1.23.8' apply false } diff --git a/core/designsystem/build.gradle b/core/designsystem/build.gradle index 14b024e..2e0dea8 100644 --- a/core/designsystem/build.gradle +++ b/core/designsystem/build.gradle @@ -2,6 +2,7 @@ plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' id 'org.jetbrains.kotlin.plugin.compose' + id 'io.github.takahirom.roborazzi' } android { @@ -22,6 +23,12 @@ android { kotlinOptions { jvmTarget = '17' } + // Roborazzi/Robolectric: рендер Compose в PNG на JVM (Fd-сверка без эмулятора). + testOptions { + unitTests { + includeAndroidResources = true + } + } } dependencies { @@ -32,4 +39,14 @@ dependencies { implementation libs.compose.material3 implementation libs.coil.compose implementation libs.coil.svg + + // Screenshot-тесты (JVM) + testImplementation composeBom + testImplementation libs.junit + testImplementation libs.robolectric + testImplementation libs.roborazzi + testImplementation libs.roborazzi.compose + testImplementation libs.roborazzi.junit.rule + testImplementation libs.compose.ui.test.junit4 + debugImplementation libs.compose.ui.test.manifest } diff --git a/core/designsystem/src/test/java/ru/forbion/f7cloud/core/designsystem/ScreenshotProofTest.kt b/core/designsystem/src/test/java/ru/forbion/f7cloud/core/designsystem/ScreenshotProofTest.kt new file mode 100644 index 0000000..f46b63d --- /dev/null +++ b/core/designsystem/src/test/java/ru/forbion/f7cloud/core/designsystem/ScreenshotProofTest.kt @@ -0,0 +1,50 @@ +package ru.forbion.f7cloud.core.designsystem + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onRoot +import androidx.compose.ui.unit.dp +import com.github.takahirom.roborazzi.captureRoboImage +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.robolectric.annotation.GraphicsMode + +/** + * Пилот Roborazzi: рендер Compose designsystem в PNG на JVM (без эмулятора). + * Каркас Fd-сверки: экран → PNG → сравнение с веб-мобильной forbion. + */ +@RunWith(RobolectricTestRunner::class) +@GraphicsMode(GraphicsMode.Mode.NATIVE) +@Config(sdk = [34], qualifiers = "w390dp-h844dp-xxhdpi") +class ScreenshotProofTest { + + @get:Rule + val composeRule = createComposeRule() + + @Test + fun designsystem_primary_button() { + composeRule.setContent { + F7Theme { + Column( + modifier = Modifier.fillMaxSize().background(Color.White).padding(16.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text("F7 design proof — Roborazzi") + F7PrimaryButton(text = "Сохранить", onClick = {}) + F7SecondaryButton(text = "Отмена", onClick = {}) + } + } + } + composeRule.onRoot().captureRoboImage("src/test/screenshots/proof-primary-button.png") + } +} diff --git a/core/designsystem/src/test/screenshots/proof-primary-button.png b/core/designsystem/src/test/screenshots/proof-primary-button.png new file mode 100644 index 0000000000000000000000000000000000000000..59ca38c0148d551f664fd38a76275c4a2406cc94 GIT binary patch literal 97180 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

GZD`RwXHXWVc|B%SZgi;kC6yHW` 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

0XR;+I<1PSC+DhsBz1zm@jSt4 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 SUFnX05^Cj0&bR#e%>M%7_oS2n literal 0 HcmV?d00001 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5f9e27a..6dea56b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,6 +8,8 @@ coreKtx = "1.15.0" # был дрейф 1.13.1 / 1.15.0 lifecycle = "2.8.7" # был дрейф 2.8.1 / 2.8.7 coil = "2.7.0" # был дрейф 2.6.0 / 2.7.0 media3 = "1.4.1" # нативный медиа-слой (видео/аудио) — ExoPlayer +roborazzi = "1.42.0" # screenshot-тесты Compose на JVM (Fd-сверка без эмулятора) +robolectric = "4.14.1" coroutines = "1.10.1" # был дрейф 1.8.1 / 1.10.1 navigationCompose = "2.8.9" room = "2.7.2" @@ -42,6 +44,13 @@ coil-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } coil-gif = { group = "io.coil-kt", name = "coil-gif", version.ref = "coil" } media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" } media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3" } + +roborazzi = { group = "io.github.takahirom.roborazzi", name = "roborazzi", version.ref = "roborazzi" } +roborazzi-compose = { group = "io.github.takahirom.roborazzi", name = "roborazzi-compose", version.ref = "roborazzi" } +roborazzi-junit-rule = { group = "io.github.takahirom.roborazzi", name = "roborazzi-junit-rule", version.ref = "roborazzi" } +robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" } +compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" } coroutines-play-services = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-play-services", version.ref = "coroutines" } okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }