Skip to content

Commit

Permalink
Remove some ts-ignore
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Oct 3, 2022
1 parent 226a8df commit 8b77373
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 114 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,110 +2,101 @@ import React from '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: AbstractSessionModel
let model: AddTrackModel

beforeAll(() => {
// @ts-ignore
session = createTestSession()
// @ts-ignore
session.addAssemblyConf({
name: 'volMyt1',
sequence: {
trackId: 'ref0',
type: 'ReferenceSequenceTrack',
adapter: {
type: 'FromConfigSequenceAdapter',
features: [
{
refName: 'ctgA',
uniqueId: 'firstId',
start: 0,
end: 1000,
seq: 'cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgattatgattggttctttagccttggtttagattggtagtagtagcggcgctaatgctacctgaattgagaactcgagcgggggctaggcaaattctgattcagcctgacttctcttggaaccctgcccataaatcaaagggttagtgcggccaaaacgttggacaacggtattagaagaccaacctgaccaccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctagatagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatacgagactagctgtcaccagatgctgttcatctgttggctccttggtcgctccgttgtacccaggctactttgaaagagcgcagaatacttagacggtatcgatcatggtagcatagcattctgataacatgtatggagttcgaacatccgtctggggccggacggtccgtttgaggttggttgatctgggtgatagtcagcaagatagacgttagataacaaattaaaggattttaccttagattgcgactagtacaacggtacatcggtgattcgcgctctactagatcacgctatgggtaccataaacaaacggtggaccttctcaagctggttgacgcctcagcaacataggcttcctcctccacgcatctcagcataaaaggcttataaactgcttctttgtgccagagcaactcaattaagcccttggtaccgtgggcacgcattctgtcacggtgaccaactgttcatcctgaatcgccgaatgggactatttggtacaggaatcaagcggatggcactactgcagcttatttacgacggtattcttaaagtttttaagacaatgtatttcatgggtagttcggtttgttttattgctacacaggctcttgtagacgacctacttagcactacgg',
},
],
},
},
})
// @ts-ignore
session.addTrackConf({
trackId: 'i3jUPmrgMOS',
type: 'FeatureTrack',
name: 'Filter Test',
assemblyNames: ['volMyt1'],
function getSession() {
const session = createTestSession()
session.addAssemblyConf({
name: 'volMyt1',
sequence: {
trackId: 'ref0',
type: 'ReferenceSequenceTrack',
adapter: {
type: 'FromConfigAdapter',
type: 'FromConfigSequenceAdapter',
features: [
{
uniqueId: 'one',
refName: 'ctgA',
start: 100,
end: 101,
type: 'foo',
name: 'Boris',
note: 'note for boris',
},
{
uniqueId: 'two',
refName: 'ctgA',
start: 110,
end: 111,
type: 'bar',
name: 'Theresa',
note: 'note for theresa',
},
{
uniqueId: 'three',
refName: 'ctgA',
start: 120,
end: 121,
type: 'baz',
name: 'Nigel',
note: 'note for nigel',
},
{
uniqueId: 'four',
refName: 'ctgA',
start: 130,
end: 131,
type: 'quux',
name: 'Geoffray',
note: 'note for geoffray',
uniqueId: 'firstId',
start: 0,
end: 1000,
seq: 'cattgttgcggagttgaacaACGGCATTAGGAACACTTCCGTCTCtcacttttatacgattatgattggttctttagccttggtttagattggtagtagtagcggcgctaatgctacctgaattgagaactcgagcgggggctaggcaaattctgattcagcctgacttctcttggaaccctgcccataaatcaaagggttagtgcggccaaaacgttggacaacggtattagaagaccaacctgaccaccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctagatagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatacgagactagctgtcaccagatgctgttcatctgttggctccttggtcgctccgttgtacccaggctactttgaaagagcgcagaatacttagacggtatcgatcatggtagcatagcattctgataacatgtatggagttcgaacatccgtctggggccggacggtccgtttgaggttggttgatctgggtgatagtcagcaagatagacgttagataacaaattaaaggattttaccttagattgcgactagtacaacggtacatcggtgattcgcgctctactagatcacgctatgggtaccataaacaaacggtggaccttctcaagctggttgacgcctcagcaacataggcttcctcctccacgcatctcagcataaaaggcttataaactgcttctttgtgccagagcaactcaattaagcccttggtaccgtgggcacgcattctgtcacggtgaccaactgttcatcctgaatcgccgaatgggactatttggtacaggaatcaagcggatggcactactgcagcttatttacgacggtattcttaaagtttttaagacaatgtatttcatgggtagttcggtttgttttattgctacacaggctcttgtagacgacctacttagcactacgg',
},
],
},
filterAttributes: ['type', 'start', 'end'],
})

// @ts-ignore
const view = session.addView('LinearGenomeView', {
displayedRegions: [
},
})
session.addTrackConf({
trackId: 'i3jUPmrgMOS',
type: 'FeatureTrack',
name: 'Filter Test',
assemblyNames: ['volMyt1'],
adapter: {
type: 'FromConfigAdapter',
features: [
{
assemblyName: 'volMyt1',
uniqueId: 'one',
refName: 'ctgA',
start: 0,
end: 1000,
start: 100,
end: 101,
type: 'foo',
name: 'Boris',
note: 'note for boris',
},
{
uniqueId: 'two',
refName: 'ctgA',
start: 110,
end: 111,
type: 'bar',
name: 'Theresa',
note: 'note for theresa',
},
{
uniqueId: 'three',
refName: 'ctgA',
start: 120,
end: 121,
type: 'baz',
name: 'Nigel',
note: 'note for nigel',
},
{
uniqueId: 'four',
refName: 'ctgA',
start: 130,
end: 131,
type: 'quux',
name: 'Geoffray',
note: 'note for geoffray',
},
],
})
},
filterAttributes: ['type', 'start', 'end'],
})

// @ts-ignore
model = session.addWidget('AddTrackWidget', 'addTrackWidget', {
view: view.id,
})
const view = session.addView('LinearGenomeView', {
displayedRegions: [
{
assemblyName: 'volMyt1',
refName: 'ctgA',
start: 0,
end: 1000,
},
],
})

const model = session.addWidget('AddTrackWidget', 'addTrackWidget', {
view: view.id,
})
return { session, model }
}

describe('<AddTrackWidget />', () => {
it('adds a track', async () => {
const { session, model } = getSession()
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 @@ -123,7 +114,6 @@ describe('<AddTrackWidget />', () => {
const volMyt1 = await findAllByText('volMyt1')
fireEvent.click(volMyt1[1])
fireEvent.click(getAllByTestId('addTrackNextButton')[0])
// @ts-ignore
expect(session.sessionTracks.length).toBe(2)
})
})
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */

import React from 'react'
import { createJBrowseTheme } from '@jbrowse/core/ui'
import { createTestSession } from '@jbrowse/web/src/rootModel'
Expand All @@ -20,7 +18,7 @@ describe('HierarchicalTrackSelector widget', () => {

it('renders nothing with no assembly', () => {
const session = createTestSession()
const firstView = session!.addView('LinearGenomeView')
const firstView = session.addView('LinearGenomeView')
const model = firstView.activateTrackSelector()

const { container } = render(
Expand All @@ -34,7 +32,6 @@ describe('HierarchicalTrackSelector widget', () => {

it('renders with a couple of uncategorized tracks', async () => {
const session = createTestSession()
// @ts-ignore
session.addAssemblyConf({
name: 'volMyt1',
sequence: {
Expand All @@ -54,21 +51,19 @@ describe('HierarchicalTrackSelector widget', () => {
},
},
})
// @ts-ignore
session.addTrackConf({
trackId: 'fooC',
assemblyNames: ['volMyt1'],
type: 'FeatureTrack',
adapter: { type: 'FromConfigAdapter', features: [] },
})
// @ts-ignore
session.addTrackConf({
trackId: 'barC',
assemblyNames: ['volMyt1'],
type: 'FeatureTrack',
adapter: { type: 'FromConfigAdapter', features: [] },
})
const firstView = session!.addView('LinearGenomeView', {
const firstView = session.addView('LinearGenomeView', {
displayedRegions: [
{
assemblyName: 'volMyt1',
Expand All @@ -78,8 +73,8 @@ describe('HierarchicalTrackSelector widget', () => {
},
],
})
firstView.showTrack(session!.sessionTracks[0].trackId)
firstView.showTrack(session!.sessionTracks[1].trackId)
firstView.showTrack(session.sessionTracks[0].trackId)
firstView.showTrack(session.sessionTracks[1].trackId)
const model = firstView.activateTrackSelector()

const { container, findByTestId } = render(
Expand All @@ -94,7 +89,6 @@ describe('HierarchicalTrackSelector widget', () => {

it('renders with a couple of categorized tracks', async () => {
const session = createTestSession()
// @ts-ignore
session.addAssemblyConf({
name: 'volMyt1',
sequence: {
Expand All @@ -115,21 +109,19 @@ describe('HierarchicalTrackSelector widget', () => {
},
})

// @ts-ignore
session.addTrackConf({
trackId: 'fooC',
assemblyNames: ['volMyt1'],
type: 'FeatureTrack',
adapter: { type: 'FromConfigAdapter', features: [] },
})
// @ts-ignore
session.addTrackConf({
trackId: 'barC',
assemblyNames: ['volMyt1'],
type: 'FeatureTrack',
adapter: { type: 'FromConfigAdapter', features: [] },
})
const firstView = session!.addView('LinearGenomeView', {
const firstView = session.addView('LinearGenomeView', {
displayedRegions: [
{
assemblyName: 'volMyt1',
Expand All @@ -139,8 +131,8 @@ describe('HierarchicalTrackSelector widget', () => {
},
],
})
firstView.showTrack(session!.sessionTracks[0].trackId)
firstView.showTrack(session!.sessionTracks[1].trackId)
firstView.showTrack(session.sessionTracks[0].trackId)
firstView.showTrack(session.sessionTracks[1].trackId)
firstView.tracks[0].configuration.category.set(['Foo Category'])
firstView.tracks[1].configuration.category.set([
'Foo Category',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import React from 'react'
import { fireEvent, render, waitFor } from '@testing-library/react'
import { createTestSession } from '@jbrowse/web/src/rootModel'
Expand Down Expand Up @@ -33,7 +32,7 @@ const assemblyConf = {

describe('<LinearGenomeView />', () => {
it('renders setup wizard', async () => {
const session = createTestSession()!
const session = createTestSession()
session.addAssemblyConf(assemblyConf)
session.addView('LinearGenomeView', { id: 'lgv' })
const model = session.views[0]
Expand All @@ -49,7 +48,7 @@ describe('<LinearGenomeView />', () => {
}, 15000)

it('renders one track, one region', async () => {
const session = createTestSession()!
const session = createTestSession()
session.addAssemblyConf(assemblyConf)
session.addTrackConf({
trackId: 'testConfig',
Expand Down Expand Up @@ -101,12 +100,8 @@ describe('<LinearGenomeView />', () => {
})

it('renders two tracks, two regions', async () => {
const session = createTestSession()!

// @ts-ignore
const session = createTestSession()
session.addAssemblyConf(assemblyConf)

// @ts-ignore
session.addTrackConf({
trackId: 'testConfig',
name: 'Foo Track',
Expand All @@ -115,15 +110,14 @@ describe('<LinearGenomeView />', () => {
adapter: { type: 'FromConfigAdapter', features: [] },
})

// @ts-ignore
session.addTrackConf({
trackId: 'testConfig2',
name: 'Bar Track',
assemblyNames: ['volMyt1'],
type: 'BasicTrack',
adapter: { type: 'FromConfigAdapter', features: [] },
})
session!.addView('LinearGenomeView', {
session.addView('LinearGenomeView', {
id: 'lgv',
offsetPx: 0,
bpPerPx: 1,
Expand Down
9 changes: 5 additions & 4 deletions products/jbrowse-web/src/rootModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -733,10 +733,11 @@ export function createTestSession(snapshot = {}, adminMode = false) {
name: 'testSession',
...snapshot,
})
// @ts-ignore
root.session.views.map(view => view.setWidth(800))
pluginManager.setRootModel(root)

// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const session = root.session!
session.views.map(view => view.setWidth(800))
pluginManager.setRootModel(root)
pluginManager.configure()
return root.session
return session
}

0 comments on commit 8b77373

Please sign in to comment.