Merge pull request #32639 from overleaf/fix/figure-modal-zero-byte-file-crash

[web] Fix FileSize crash when uploading zero-byte file in figure modal

GitOrigin-RevId: 6ce0dfa221c44af4df813231c97aac846214b34d
This commit is contained in:
Alexandre Bourdin
2026-04-09 16:21:04 +02:00
committed by Copybot
parent 65ba7c8dd4
commit e4b49b00ec
2 changed files with 17 additions and 4 deletions

View File

@@ -331,10 +331,10 @@ const FileSize: FC<{ size: number; className?: string }> = ({
['TB', 1e12],
['PB', 1e15],
]
const labelIndex = Math.min(
Math.floor(Math.log10(size) / 3),
BYTE_UNITS.length - 1
)
const labelIndex =
size > 0
? Math.min(Math.floor(Math.log10(size) / 3), BYTE_UNITS.length - 1)
: 0
const [label, bytesPerUnit] = BYTE_UNITS[labelIndex]
const sizeInUnits = Math.round(size / bytesPerUnit)

View File

@@ -149,6 +149,19 @@ describe('<FigureModal />', function () {
cy.findByLabelText('File size').should('have.text', '10 B')
})
it('Shows file name and zero size when selecting a zero-byte file', function () {
cy.get('@file-input').selectFile(
{
fileName: 'empty.jpg',
contents: Cypress.Buffer.alloc(0),
mimeType: 'image/jpg',
},
{ force: true }
)
cy.findByLabelText('File name').should('have.text', 'empty.jpg')
cy.findByLabelText('File size').should('have.text', '0 B')
})
it('Uploads file when clicking insert', function () {
chooseFileFromComputer()
cy.get('@uploadRequest').should('not.have.been.called')