mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
797b9b2532
* Initialize left menu react migration and migration download menu UI to react * Add test case to DownloadMenu react component * Update test description and add an href check to one of the download link * Extract storybook document mock to its own fixture file * Add mockCompileOnLoad config on storybook editor scope - if mockCompileOnLoad: true (default), then the default compile mock will be used - If mockCompileOnLoad: false, then we have to provide a compile mock on the storybook component * Create download menu storybook component * Use a single "editor-left-menu" controller on the editor left menu migrations * Remove the form import from the react version of the left menu * Change inline style to utility class name GitOrigin-RevId: 5357c7bfc78bf40f52b9b308df8f2b60d793fbf7
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
import { screen, waitFor } from '@testing-library/dom'
|
|
import { expect } from 'chai'
|
|
import fetchMock from 'fetch-mock'
|
|
import DownloadMenu from '../../../../../frontend/js/features/editor-left-menu/components/download-menu'
|
|
import { renderWithEditorContext } from '../../../helpers/render-with-context'
|
|
|
|
describe('<DownloadMenu />', function () {
|
|
afterEach(function () {
|
|
fetchMock.reset()
|
|
})
|
|
|
|
it('shows download links with correct url', async function () {
|
|
fetchMock.post('express:/project/:projectId/compile', {
|
|
clsiServerId: 'foo',
|
|
compileGroup: 'priority',
|
|
status: 'success',
|
|
pdfDownloadDomain: 'https://clsi.test-overleaf.com',
|
|
outputFiles: [
|
|
{
|
|
path: 'output.pdf',
|
|
build: 'build-123',
|
|
url: '/build/build-123/output.pdf',
|
|
type: 'pdf',
|
|
},
|
|
],
|
|
})
|
|
|
|
renderWithEditorContext(<DownloadMenu />, {
|
|
projectId: '123abc',
|
|
scope: {
|
|
editor: {
|
|
sharejs_doc: {
|
|
doc_id: 'test-doc',
|
|
getSnapshot: () => 'some doc content',
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
const sourceLink = screen.getByRole('link', {
|
|
name: 'Source',
|
|
})
|
|
|
|
expect(sourceLink.getAttribute('href')).to.equal(
|
|
'/project/123abc/download/zip'
|
|
)
|
|
|
|
await waitFor(() => {
|
|
const pdfLink = screen.getByRole('link', {
|
|
name: 'PDF',
|
|
})
|
|
|
|
expect(pdfLink.getAttribute('href')).to.equal(
|
|
'/download/project/123abc/build/build-123/output/output.pdf?compileGroup=priority&clsiserverid=foo&popupDownload=true'
|
|
)
|
|
})
|
|
})
|
|
})
|