11import { test , expect } from '@playwright/test' ;
22
3+ const isCI = ! ! process . env . CI ;
4+
35test . describe ( 'Diff Viewer' , ( ) => {
46 test . beforeEach ( async ( { page } ) => {
57 await page . goto ( '/' ) ;
@@ -11,8 +13,10 @@ test.describe('Diff Viewer', () => {
1113 await expect ( page . locator ( 'textarea' ) . nth ( 1 ) ) . toBeVisible ( ) ;
1214 await expect ( page . locator ( 'pre' ) ) . toBeVisible ( ) ;
1315
14- // 初期状態のスクリーンショット
15- await expect ( page ) . toHaveScreenshot ( 'initial-state.png' ) ;
16+ // 初期状態のスクリーンショット(CI以外)
17+ if ( ! isCI ) {
18+ await expect ( page ) . toHaveScreenshot ( 'initial-state.png' ) ;
19+ }
1620 } ) ;
1721
1822 test ( 'テキスト入力と差分表示' , async ( { page } ) => {
@@ -27,8 +31,10 @@ test.describe('Diff Viewer', () => {
2731 await expect ( page . locator ( '.bg-red-100' ) ) . toContainText ( '- World' ) ;
2832 await expect ( page . locator ( '.bg-green-100' ) ) . toContainText ( '+ Universe' ) ;
2933
30- // 差分表示のスクリーンショット
31- await expect ( page ) . toHaveScreenshot ( 'diff-display.png' ) ;
34+ // 差分表示のスクリーンショット(CI以外)
35+ if ( ! isCI ) {
36+ await expect ( page ) . toHaveScreenshot ( 'diff-display.png' ) ;
37+ }
3238 } ) ;
3339
3440 test ( 'URL生成とコピー機能' , async ( { page } ) => {
@@ -48,8 +54,10 @@ test.describe('Diff Viewer', () => {
4854 // コピーボタンの存在確認
4955 await expect ( copyButton ) . toBeVisible ( ) ;
5056
51- // URL機能のスクリーンショット
52- await expect ( page ) . toHaveScreenshot ( 'url-feature.png' ) ;
57+ // URL機能のスクリーンショット(CI以外)
58+ if ( ! isCI ) {
59+ await expect ( page ) . toHaveScreenshot ( 'url-feature.png' ) ;
60+ }
5361 } ) ;
5462
5563 test ( 'URLパラメータからの復元' , async ( { page } ) => {
@@ -63,8 +71,10 @@ test.describe('Diff Viewer', () => {
6371 await expect ( textarea1 ) . toHaveValue ( 'text1' ) ;
6472 await expect ( textarea2 ) . toHaveValue ( 'text2' ) ;
6573
66- // 復元状態のスクリーンショット
67- await expect ( page ) . toHaveScreenshot ( 'url-restore.png' ) ;
74+ // 復元状態のスクリーンショット(CI以外)
75+ if ( ! isCI ) {
76+ await expect ( page ) . toHaveScreenshot ( 'url-restore.png' ) ;
77+ }
6878 } ) ;
6979
7080 test ( 'レスポンシブデザイン - モバイル' , async ( { page } ) => {
@@ -74,8 +84,10 @@ test.describe('Diff Viewer', () => {
7484 await expect ( page . locator ( 'textarea' ) . first ( ) ) . toBeVisible ( ) ;
7585 await expect ( page . locator ( 'textarea' ) . nth ( 1 ) ) . toBeVisible ( ) ;
7686
77- // モバイル表示のスクリーンショット
78- await expect ( page ) . toHaveScreenshot ( 'mobile-view.png' ) ;
87+ // モバイル表示のスクリーンショット(CI以外)
88+ if ( ! isCI ) {
89+ await expect ( page ) . toHaveScreenshot ( 'mobile-view.png' ) ;
90+ }
7991 } ) ;
8092
8193 test ( 'レスポンシブデザイン - タブレット' , async ( { page } ) => {
@@ -85,8 +97,10 @@ test.describe('Diff Viewer', () => {
8597 await expect ( page . locator ( 'textarea' ) . first ( ) ) . toBeVisible ( ) ;
8698 await expect ( page . locator ( 'textarea' ) . nth ( 1 ) ) . toBeVisible ( ) ;
8799
88- // タブレット表示のスクリーンショット
89- await expect ( page ) . toHaveScreenshot ( 'tablet-view.png' ) ;
100+ // タブレット表示のスクリーンショット(CI以外)
101+ if ( ! isCI ) {
102+ await expect ( page ) . toHaveScreenshot ( 'tablet-view.png' ) ;
103+ }
90104 } ) ;
91105
92106 test ( '大量テキストでの動作確認' , async ( { page } ) => {
@@ -103,7 +117,9 @@ test.describe('Diff Viewer', () => {
103117 await expect ( page . locator ( '.bg-red-100' ) . first ( ) ) . toBeVisible ( ) ;
104118 await expect ( page . locator ( '.bg-green-100' ) . first ( ) ) . toBeVisible ( ) ;
105119
106- // 大量テキスト処理のスクリーンショット
107- await expect ( page ) . toHaveScreenshot ( 'large-text.png' ) ;
120+ // 大量テキスト処理のスクリーンショット(CI以外)
121+ if ( ! isCI ) {
122+ await expect ( page ) . toHaveScreenshot ( 'large-text.png' ) ;
123+ }
108124 } ) ;
109125} ) ;
0 commit comments