diff --git a/packages/core/assemblyManager/assemblyManager.ts b/packages/core/assemblyManager/assemblyManager.ts index 9e4d132476..223c024c50 100644 --- a/packages/core/assemblyManager/assemblyManager.ts +++ b/packages/core/assemblyManager/assemblyManager.ts @@ -9,7 +9,10 @@ import { } from 'mobx-state-tree' import { when } from '../util' import { readConfObject } from '../configuration' -import { AnyConfigurationModel } from '../configuration/configurationSchema' +import { + AnyConfigurationModel, + AnyConfigurationSchemaType, +} from '../configuration/configurationSchema' import assemblyFactory from './assembly' import PluginManager from '../PluginManager' @@ -32,7 +35,7 @@ export default function assemblyManagerFactory( return [ ...getParent(self).jbrowse.assemblies, ...(getParent(self).session.sessionAssemblies || []), - ] + ] as AnyConfigurationModel[] }, get rpcManager() { @@ -125,12 +128,8 @@ export default function assemblyManagerFactory( self, reaction( // have to slice it to be properly reacted to - // eslint-disable-next-line @typescript-eslint/no-explicit-any - () => self.assemblyList as any, - ( - assemblyConfigs: Instance & - AnyConfigurationModel[], - ) => { + () => self.assemblyList, + assemblyConfigs => { self.assemblies.forEach(asm => { if (!asm.configuration) { this.removeAssembly(asm) diff --git a/plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.test.ts b/plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.test.ts index 09e61cf427..568b2a3d16 100644 --- a/plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.test.ts +++ b/plugins/config/src/FromConfigAdapter/FromConfigSequenceAdapter.test.ts @@ -7,47 +7,28 @@ test('adapter can fetch sequences', async () => { { uniqueId: 'one', refName: 'ctgA', - start: 250, - end: 400, + start: 0, + end: 150, seq: 'ccaaaccgtcaattaaccggtatcttctcggaaacggcggttctctcctagatagcgatctgtggtctcaccatgcaatttaaacaggtgagtaaagattgctacaaatacgagactagctgtcaccagatgctgttcatctgttggctc', }, - { - uniqueId: 'two', - refName: 'ctgA', - start: 150, - end: 250, - seq: - 'attctgattcagcctgacttctcttggaaccctgcccataaatcaaagggttagtgcggccaaaacgttggacaacggtattagaagaccaacctgacca', - }, - { - uniqueId: 'three', - refName: 'ctgB', - start: 50, - end: 60, - seq: 'TACATGCTAGC', - }, ] const adapter = new Adapter(sequenceConfigSchema.create({ features })) const result = adapter.getFeatures({ refName: 'ctgA', start: 0, - end: 500, + end: 50, }) const featuresArray = await result.pipe(toArray()).toPromise() - expect(featuresArray.length).toBe(2) -}) + expect(featuresArray.length).toBe(1) + expect(featuresArray[0].get('seq')).toBe(features[0].seq.slice(0, 50)) -test('adapter can fetch regions 1', async () => { - const features = [ - { uniqueId: 'one', refName: 'ctgA', start: 250, end: 400 }, - { uniqueId: 'two', refName: 'ctgA', start: 150, end: 300 }, - { uniqueId: 'three', refName: 'ctgB', start: 50, end: 60 }, - ] - const adapter = new Adapter(sequenceConfigSchema.create({ features })) - const result = await adapter.getRegions() - expect(result).toEqual([ - { refName: 'ctgA', start: 150, end: 400 }, - { refName: 'ctgB', start: 50, end: 60 }, - ]) + const result2 = adapter.getFeatures({ + refName: 'ctgA', + start: 100, + end: 150, + }) + const featuresArray2 = await result2.pipe(toArray()).toPromise() + expect(featuresArray2.length).toBe(1) + expect(featuresArray2[0].get('seq')).toBe(features[0].seq.slice(100, 150)) })