From 8b7737319e4d22b139774773c6c1a7ac97b4c886 Mon Sep 17 00:00:00 2001 From: Colin Date: Mon, 3 Oct 2022 11:35:24 -0600 Subject: [PATCH] Remove some ts-ignore --- .../components/AddTrackWidget.test.tsx | 160 ++++++++---------- .../HierarchicalTrackSelector.test.tsx | 22 +-- .../components/LinearGenomeView.test.tsx | 14 +- products/jbrowse-web/src/rootModel.ts | 9 +- 4 files changed, 91 insertions(+), 114 deletions(-) diff --git a/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.test.tsx b/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.test.tsx index c1e966841a..deb2563ff0 100644 --- a/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.test.tsx +++ b/plugins/data-management/src/AddTrackWidget/components/AddTrackWidget.test.tsx @@ -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('', () => { - 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('', () => { it('adds a track', async () => { + const { session, model } = getSession() const { getByTestId, getAllByTestId, findByText, findAllByText } = render( , ) - // @ts-ignore expect(session.sessionTracks.length).toBe(1) fireEvent.change(getAllByTestId('urlInput')[0], { target: { value: 'test.txt' }, @@ -123,7 +114,6 @@ describe('', () => { const volMyt1 = await findAllByText('volMyt1') fireEvent.click(volMyt1[1]) fireEvent.click(getAllByTestId('addTrackNextButton')[0]) - // @ts-ignore expect(session.sessionTracks.length).toBe(2) }) }) diff --git a/plugins/data-management/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx b/plugins/data-management/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx index 20d43141c5..7c0da7a588 100644 --- a/plugins/data-management/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx +++ b/plugins/data-management/src/HierarchicalTrackSelectorWidget/components/HierarchicalTrackSelector.test.tsx @@ -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' @@ -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( @@ -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: { @@ -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', @@ -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( @@ -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: { @@ -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', @@ -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', diff --git a/plugins/linear-genome-view/src/LinearGenomeView/components/LinearGenomeView.test.tsx b/plugins/linear-genome-view/src/LinearGenomeView/components/LinearGenomeView.test.tsx index 3ce53ee8d7..a97e08195a 100644 --- a/plugins/linear-genome-view/src/LinearGenomeView/components/LinearGenomeView.test.tsx +++ b/plugins/linear-genome-view/src/LinearGenomeView/components/LinearGenomeView.test.tsx @@ -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' @@ -33,7 +32,7 @@ const assemblyConf = { describe('', () => { it('renders setup wizard', async () => { - const session = createTestSession()! + const session = createTestSession() session.addAssemblyConf(assemblyConf) session.addView('LinearGenomeView', { id: 'lgv' }) const model = session.views[0] @@ -49,7 +48,7 @@ describe('', () => { }, 15000) it('renders one track, one region', async () => { - const session = createTestSession()! + const session = createTestSession() session.addAssemblyConf(assemblyConf) session.addTrackConf({ trackId: 'testConfig', @@ -101,12 +100,8 @@ describe('', () => { }) 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', @@ -115,7 +110,6 @@ describe('', () => { adapter: { type: 'FromConfigAdapter', features: [] }, }) - // @ts-ignore session.addTrackConf({ trackId: 'testConfig2', name: 'Bar Track', @@ -123,7 +117,7 @@ describe('', () => { type: 'BasicTrack', adapter: { type: 'FromConfigAdapter', features: [] }, }) - session!.addView('LinearGenomeView', { + session.addView('LinearGenomeView', { id: 'lgv', offsetPx: 0, bpPerPx: 1, diff --git a/products/jbrowse-web/src/rootModel.ts b/products/jbrowse-web/src/rootModel.ts index f3e9ee0d9b..6518af8115 100644 --- a/products/jbrowse-web/src/rootModel.ts +++ b/products/jbrowse-web/src/rootModel.ts @@ -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 }