@@ -37,6 +37,37 @@ describe("商品編集", () => {
3737 )
3838 } )
3939
40+ test ( "画像をアップロードせずに商品を編集すると既存の画像が保持される" , async ( ) => {
41+ const beforeEditRes = await app . request ( "/images/products/1" )
42+ expect ( beforeEditRes . status ) . toBe ( 200 )
43+ const beforeImageBuffer = await beforeEditRes . arrayBuffer ( )
44+ const beforeImageSize = beforeImageBuffer . byteLength
45+ expect ( beforeImageSize ) . toBeGreaterThan ( 0 )
46+
47+ const form = new URLSearchParams ( )
48+ form . append ( "name" , generateUniqueName ( "画像なし編集" ) )
49+ form . append ( "price" , "3000" )
50+ form . append ( "stock" , "8" )
51+ form . append ( "tags" , "タグA" )
52+ const editRes = await app . request ( endpoint , {
53+ method : "POST" ,
54+ body : form ,
55+ headers : { "content-type" : "application/x-www-form-urlencoded" } ,
56+ } )
57+ expect ( editRes . status ) . toBe ( 302 )
58+ expect ( editRes . headers . get ( "set-cookie" ) ) . toMatch ( / s u c c e s s / )
59+ expect ( editRes . headers . get ( "set-cookie" ) ) . toMatch (
60+ encodeURIComponent ( "商品を更新しました" ) ,
61+ )
62+
63+ const afterEditRes = await app . request ( "/images/products/1" )
64+ expect ( afterEditRes . status ) . toBe ( 200 )
65+ const afterImageBuffer = await afterEditRes . arrayBuffer ( )
66+ const afterImageSize = afterImageBuffer . byteLength
67+
68+ expect ( afterImageSize ) . toBe ( beforeImageSize )
69+ } )
70+
4071 test ( "商品名が空の場合はエラーを返す" , async ( ) => {
4172 const form = new URLSearchParams ( )
4273 form . append ( "price" , "1000" )
0 commit comments