Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions packages/jbrowse-plugin-apollo/cypress/e2e/editFeature.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,22 +175,6 @@ describe('Different ways of editing features', () => {
})
})

it.skip('Can select region on rubber-band and zoom into it', () => {
const assemblyName = 'space.gff3'
cy.addAssemblyFromGff(assemblyName, `test_data/${assemblyName}`)
cy.selectAssemblyToView(assemblyName, 'ctgA:1..10000')
cy.get('[data-testid="rubberband_controls"]').trigger('mouseover')
cy.get('[data-testid="rubberband_controls"]').trigger('mousedown', 100, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mousemove', 200, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mouseup', 200, 5, {
force: true,
})
cy.intercept('POST', '/users/userLocation').as('done')
cy.contains('Zoom to region').click()
cy.wait('@done')
cy.currentLocationEquals('ctgA', 1021, 2041, 10)
})

it.skip('Can drag and move position', () => {
const assemblyName = 'space.gff3'
cy.addAssemblyFromGff(assemblyName, `test_data/${assemblyName}`)
Expand Down
68 changes: 68 additions & 0 deletions packages/jbrowse-plugin-apollo/cypress/e2e/rubberband.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
describe('Rubberband selection', () => {
before(() => {
cy.deleteAssemblies()
cy.wrap(
globalThis.indexedDB.databases().then((dbs) => {
for (const db of dbs) {
if (db.name) {
globalThis.indexedDB.deleteDatabase(db.name)
}
}
}),
)
cy.addOntologies()
})

beforeEach(() => {
cy.loginAsGuest()
})

afterEach(() => {
cy.deleteAssemblies()
})

it('Can get sequence via rubberband selection', () => {
const assemblyName = 'space.gff3'
cy.addAssemblyFromGff(assemblyName, `test_data/${assemblyName}`)
cy.selectAssemblyToView(assemblyName, 'ctgA:1..10000')

cy.get('[data-testid="rubberband_controls"]').trigger('mouseover')
cy.get('[data-testid="rubberband_controls"]').trigger('mousedown', 100, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mousemove', 120, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mouseup', 120, 5, {
force: true,
})
cy.contains('Get sequence').click()
cy.contains('tgtcacctcgggtactgcctctattacagaggtatcttaatggcgcatccag')
})

it.only('Can get sequence via rubberband selection', () => {
const assemblyName = 'space.gff3'
cy.addAssemblyFromGff(assemblyName, `test_data/${assemblyName}`)
cy.selectAssemblyToView(assemblyName, 'ctgA:1..10000')
cy.contains('Open track selector').click()
cy.contains('Annotations (').click()
cy.annotationTrackAppearance('Show both graphical and table display')

cy.get('[data-testid="rubberband_controls"]').trigger('mouseover')
cy.get('[data-testid="rubberband_controls"]').trigger('mousedown', 100, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mousemove', 120, 5)
cy.get('[data-testid="rubberband_controls"]').trigger('mouseup', 120, 5, {
force: true,
})
cy.contains('Add new feature').click()
cy.get('[data-testid="add-feature-dialog"]').should('be.visible')
cy.contains('Add feature with a sequence ontology type').click()
cy.get('[data-testid="add-feature-dialog"]')
.contains('Type')
.parent()
.within(() => {
cy.get('input').click({ timeout: 60_000 })
})
cy.contains('li', /^remark$/, { timeout: 60_000, matchCase: false }).click()
cy.get('button').contains('Submit').click()
cy.get('tbody', { timeout: 10_000 }).find(
'input[type="text"][value="remark"]',
)
})
})
17 changes: 9 additions & 8 deletions packages/jbrowse-plugin-apollo/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
/* eslint-disable @typescript-eslint/unbound-method */
/* eslint-disable @typescript-eslint/no-unnecessary-condition */
/* eslint-disable @typescript-eslint/no-misused-promises */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { changeRegistry, checkRegistry } from '@apollo-annotation/common'
Expand Down Expand Up @@ -78,8 +77,10 @@ import { addTopLevelMenus } from './menus'
import { type ApolloSessionModel, extendSession } from './session'

interface RpcHandle {
on(event: string, listener: (event: MessageEvent) => void): this
workers: Worker[]
client: {
on?(event: string, listener: (event: MessageEvent) => void): void
}
worker: Worker
}

interface ApolloMessageData {
Expand Down Expand Up @@ -356,10 +357,10 @@ export default class ApolloPlugin extends Plugin {
pluginManager.addToExtensionPoint(
'Core-extendWorker',
(handle: RpcHandle) => {
if (!('on' in handle && handle.on)) {
if (!('on' in handle.client && handle.client.on)) {
return handle
}
handle.on('apollo', async (event: MessageEvent) => {
handle.client.on('apollo', async (event: MessageEvent) => {
if (!isApolloMessageData(event)) {
return
}
Expand All @@ -382,7 +383,7 @@ export default class ApolloPlugin extends Plugin {
}
const { seq: sequence } =
await backendDriver.getSequence(region)
handle.workers[0].postMessage({
handle.worker.postMessage({
apollo,
messageId,
sequence,
Expand All @@ -404,7 +405,7 @@ export default class ApolloPlugin extends Plugin {
break
}
const regions = await backendDriver.getRegions(assembly)
handle.workers[0].postMessage({
handle.worker.postMessage({
apollo,
messageId,
regions,
Expand All @@ -427,7 +428,7 @@ export default class ApolloPlugin extends Plugin {
}
const refNameAliases =
await backendDriver.getRefNameAliases(assembly)
handle.workers[0].postMessage({
handle.worker.postMessage({
apollo,
messageId,
refNameAliases,
Expand Down
Loading