画像エディターのプレビューを幅 320 px にしても、保存した画像まで幅 320 px になるとは限りません。Canvas の描画領域と、ページ上で要素が占める幅は別々に設定できるからです。
たとえば、canvas.width を 640、canvas.height を 480 にして、CSS で表示幅を 320 px にします。枠線や CSS 変形を加えなければ、レイアウト上では幅 320 CSS px です。この Canvas を toBlob() で PNG に書き出すと、PNG の画像サイズは 640 × 480 ピクセルです。CSS の表示幅を変えても、書き出し用の描画領域は変わりません。
テストでは、プレビューの表示幅を測り、次に Blob をデコードして出力画像の幅を確認します。たとえば、「表示幅 320 CSS px」「出力幅 640 px」を別々のアサーションにします。Blob が作れなかった場合は、幅の比較より先に書き出し失敗として扱います。
書き出し画像を小さくしたい場合は、目的の寸法で別の Canvas を作り、そこへ描画してから書き出せます。表示中の Canvas の width を途中で設定し直すと、描画内容とコンテキストの状態がリセットされます。プレビューと書き出しで領域を分けておくと、プレビューを消さずに出力サイズを変えられます。