@@ -151,6 +151,46 @@ describe("translationStatus", () => {
151151 expect ( result ) . toBe ( 0.625 ) ;
152152 } ) ;
153153
154+ it ( "originalページは計算から除外される" , async ( ) => {
155+ const { calculateTranslationProgressRate } = await import (
156+ "./translationStatus"
157+ ) ;
158+
159+ const status = {
160+ $schema : "./translation-status.schema.json" ,
161+ "/docs/page1/" : "translated" , // 1.0
162+ "/docs/page2/" : "partially_translated" , // 0.5
163+ "/docs/original1/" : "community" , // 除外
164+ "/docs/original2/" : "community" , // 除外
165+ "/docs/page3/" : "untranslated" , // 0.0
166+ } ;
167+
168+ mockFs . readFileSync . mockReturnValue ( JSON . stringify ( status ) ) ;
169+
170+ const result = calculateTranslationProgressRate ( ) ;
171+
172+ // (1.0 + 0.5 + 0.0) / 3 = 0.5
173+ expect ( result ) . toBe ( 0.5 ) ;
174+ } ) ;
175+
176+ it ( "全てoriginalページの場合は0を返す" , async ( ) => {
177+ const { calculateTranslationProgressRate } = await import (
178+ "./translationStatus"
179+ ) ;
180+
181+ const status = {
182+ $schema : "./translation-status.schema.json" ,
183+ "/docs/original1/" : "community" ,
184+ "/docs/original2/" : "community" ,
185+ } ;
186+
187+ mockFs . readFileSync . mockReturnValue ( JSON . stringify ( status ) ) ;
188+
189+ const result = calculateTranslationProgressRate ( ) ;
190+
191+ expect ( result ) . toBe ( 0 ) ;
192+ } ) ;
193+
154194 it ( "ページが存在しない場合は0を返す" , async ( ) => {
155195 const { calculateTranslationProgressRate } = await import (
156196 "./translationStatus"
0 commit comments