Skip to content

Commit

Permalink
Typescriptify test
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Jul 21, 2022
1 parent 113ac69 commit e031cac
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 377 deletions.
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
import React from 'react'
import { render, cleanup, fireEvent } from '@testing-library/react'
import { render, fireEvent } from '@testing-library/react'
import { createTestSession } from '@jbrowse/web/src/rootModel'
import AddTrackWidget from './AddTrackWidget'
import { AddTrackModel } from '../model'
import { AbstractSessionModel } from '@jbrowse/core/util'
jest.mock('@jbrowse/web/src/makeWorkerInstance', () => () => {})

describe('<AddTrackWidget />', () => {
let session
let model
let session: AbstractSessionModel
let model: AddTrackModel

beforeAll(() => {
// @ts-ignore
session = createTestSession()
// @ts-ignore
session.addAssemblyConf({
name: 'volMyt1',
sequence: {
Expand All @@ -29,6 +33,7 @@ describe('<AddTrackWidget />', () => {
},
},
})
// @ts-ignore
session.addTrackConf({
trackId: 'i3jUPmrgMOS',
type: 'FeatureTrack',
Expand Down Expand Up @@ -77,6 +82,8 @@ describe('<AddTrackWidget />', () => {
},
filterAttributes: ['type', 'start', 'end'],
})

// @ts-ignore
const view = session.addView('LinearGenomeView', {
displayedRegions: [
{
Expand All @@ -87,22 +94,18 @@ describe('<AddTrackWidget />', () => {
},
],
})

// @ts-ignore
model = session.addWidget('AddTrackWidget', 'addTrackWidget', {
view: view.id,
})
})

afterEach(cleanup)

it('renders', () => {
const { container } = render(<AddTrackWidget model={model} />)
expect(container.firstChild).toMatchSnapshot()
})

it('adds a track', async () => {
const { getByTestId, getAllByTestId, findByText, findAllByText } = render(
<AddTrackWidget model={model} />,
)
// @ts-ignore
expect(session.sessionTracks.length).toBe(1)
fireEvent.change(getAllByTestId('urlInput')[0], {
target: { value: 'test.txt' },
Expand All @@ -114,31 +117,13 @@ describe('<AddTrackWidget />', () => {
fireEvent.change(getByTestId('trackNameInput'), {
target: { value: 'Test track name' },
})
const trackTypeSelect = getByTestId('trackTypeSelect')
fireEvent.mouseDown(trackTypeSelect)
const featureTrack = await findByText('FeatureTrack')
fireEvent.click(featureTrack)
const assemblyNameSelect = getByTestId('assemblyNameSelect')
fireEvent.mouseDown(assemblyNameSelect)
fireEvent.mouseDown(getByTestId('trackTypeSelect'))
fireEvent.click(await findByText('FeatureTrack'))
fireEvent.mouseDown(getByTestId('assemblyNameSelect'))
const volMyt1 = await findAllByText('volMyt1')
fireEvent.click(volMyt1[1])
fireEvent.click(getAllByTestId('addTrackNextButton')[0])
expect(session.sessionTracks.length).toBe(2)
})

xit('fails to add a track', async () => {
const { getByTestId, getAllByTestId, findByText } = render(
<AddTrackWidget model={model} />,
)
expect(session.sessionTracks.length).toBe(2)
fireEvent.change(getAllByTestId('urlInput')[0], {
target: { value: 'test.txt' },
})
fireEvent.click(getAllByTestId('addTrackNextButton')[0])
fireEvent.mouseDown(getByTestId('adapterTypeSelect'))
const chrom = await findByText('ChromSizesAdapter')
fireEvent.click(chrom)
fireEvent.click(getAllByTestId('addTrackNextButton')[0])
// @ts-ignore
expect(session.sessionTracks.length).toBe(2)
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ const useStyles = makeStyles()(theme => ({

const steps = ['Enter track data', 'Confirm track type']

function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
const AddTrackWorkflow = observer(({ model }: { model: AddTrackModel }) => {
const [activeStep, setActiveStep] = useState(0)
const { classes } = useStyles()
const { pluginManager } = getEnv(model)
Expand Down Expand Up @@ -162,7 +162,6 @@ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
return true
}
}
console.log('t11')

return (
<div className={classes.root}>
Expand Down Expand Up @@ -206,7 +205,7 @@ function AddTrackWorkflow({ model }: { model: AddTrackModel }) {
</Stepper>
</div>
)
}
})

function AddTrackSelector({ model }: { model: AddTrackModel }) {
const [val, setVal] = useLocalStorage('trackSelector-choice', 'Default')
Expand All @@ -222,7 +221,6 @@ function AddTrackSelector({ model }: { model: AddTrackModel }) {
// make sure it is in the list
const effectiveVal = ComponentMap[val] ? val : 'Default'
const Component = ComponentMap[effectiveVal]
console.log({ effectiveVal, val, Component })
return (
<>
<Select
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,9 @@ const TextIndexingConfig = observer(({ model }: { model: AddTrackModel }) => {

const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
const { classes } = useStyles()
const session = getSession(model)
const { trackAdapter } = model
// prettier-ignore
const adapters = getAdapterTypes(getEnv(session).pluginManager)
const { pluginManager } = getEnv(model)
const adapters = getAdapterTypes(pluginManager)
return (
<TextField
className={classes.spacing}
Expand All @@ -242,9 +241,7 @@ const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
helperText="Select an adapter type"
select
fullWidth
onChange={event => {
model.setAdapterHint(event.target.value)
}}
onChange={event => model.setAdapterHint(event.target.value)}
SelectProps={{
// @ts-ignore
SelectDisplayProps: { 'data-testid': 'adapterTypeSelect' },
Expand All @@ -264,10 +261,13 @@ const TrackAdapterSelector = observer(({ model }: { model: AddTrackModel }) => {
: elt.name}
</MenuItem>
))}
{/* adapters with the 'adapterMetadata.category' property are categorized by the value of the property here */}
{categorizeAdapters(
adapters.filter(elt => !elt.adapterMetadata?.hiddenFromGUI),
)}
{
// adapters with the 'adapterMetadata.category' property are categorized
// by the value of the property here
categorizeAdapters(
adapters.filter(elt => !elt.adapterMetadata?.hiddenFromGUI),
)
}
</TextField>
)
})
Expand Down
Loading

0 comments on commit e031cac

Please sign in to comment.