Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to get stitched together CDS, protein, and cDNA sequences in feature details #1758

Merged
merged 14 commits into from
Mar 4, 2021
382 changes: 321 additions & 61 deletions packages/core/BaseFeatureWidget/BaseFeatureDetail.tsx

Large diffs are not rendered by default.

216 changes: 76 additions & 140 deletions packages/core/BaseFeatureWidget/__snapshots__/index.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2,179 +2,115 @@

exports[`open up a widget 1`] = `
<div
class="MuiPaper-root makeStyles-paperRoot MuiPaper-elevation1 MuiPaper-rounded"
class="MuiPaper-root MuiAccordion-root makeStyles-accordionBorder MuiAccordion-expanded MuiAccordion-rounded MuiPaper-elevation1 MuiPaper-rounded"
>
<div
class="MuiPaper-root MuiAccordion-root MuiAccordion-expanded MuiAccordion-rounded MuiPaper-elevation1 MuiPaper-rounded"
style="margin-top: 4px;"
aria-disabled="false"
aria-expanded="true"
class="MuiButtonBase-root MuiAccordionSummary-root MuiAccordionSummary-expanded"
role="button"
tabindex="0"
>
<div
aria-disabled="false"
aria-expanded="true"
class="MuiButtonBase-root MuiAccordionSummary-root MuiAccordionSummary-expanded"
role="button"
tabindex="0"
class="MuiAccordionSummary-content MuiAccordionSummary-expanded"
>
<div
class="MuiAccordionSummary-content MuiAccordionSummary-expanded"
<span
class="MuiTypography-root MuiTypography-button"
>
<span
class="MuiTypography-root MuiTypography-button"
>

Primary data
</span>
</div>
<div
aria-disabled="false"
aria-hidden="true"
class="MuiButtonBase-root MuiIconButton-root MuiAccordionSummary-expandIcon MuiAccordionSummary-expanded MuiIconButton-edgeEnd"

</span>
</div>
<div
aria-disabled="false"
aria-hidden="true"
class="MuiButtonBase-root MuiIconButton-root MuiAccordionSummary-expandIcon MuiAccordionSummary-expanded MuiIconButton-edgeEnd"
>
<span
class="MuiIconButton-label"
>
<span
class="MuiIconButton-label"
<svg
aria-hidden="true"
class="MuiSvgIcon-root makeStyles-expandIcon"
focusable="false"
viewBox="0 0 24 24"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root makeStyles-expandIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
/>
</svg>
</span>
</div>
<path
d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
/>
</svg>
</span>
</div>
</div>
<div
class="MuiCollapse-container MuiCollapse-entered"
style="min-height: 0px;"
>
<div
class="MuiCollapse-container MuiCollapse-entered"
style="min-height: 0px;"
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapper"
class="MuiCollapse-wrapperInner"
>
<div
class="MuiCollapse-wrapperInner"
role="region"
>
<div
role="region"
class="MuiAccordionDetails-root makeStyles-expansionPanelDetails"
>
<div>
Core details
</div>
<div
class="MuiAccordionDetails-root makeStyles-expansionPanelDetails"
class="makeStyles-field"
>
<div
class="makeStyles-field"
class="makeStyles-fieldName"
>
<div
class="makeStyles-fieldName"
>
Position
</div>
<div
class="makeStyles-fieldValue"
>
<div>
ctgA:3..102 (+)
</div>
</div>
Position
</div>
<div
class="makeStyles-field"
class="makeStyles-fieldValue"
>
<div
class="makeStyles-fieldName"
>
Length
<div>
ctgA:3..102 (+)
</div>
<div
class="makeStyles-fieldValue"
>
<div>
100
</div>
</div>
</div>
<div
class="makeStyles-field"
>
<div
class="makeStyles-fieldName"
>
Length
</div>
<div
class="makeStyles-fieldValue"
>
<div>
100
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<hr
class="MuiDivider-root"
/>
<div
class="MuiPaper-root MuiAccordion-root MuiAccordion-expanded MuiAccordion-rounded MuiPaper-elevation1 MuiPaper-rounded"
style="margin-top: 4px;"
>
<div
aria-disabled="false"
aria-expanded="true"
class="MuiButtonBase-root MuiAccordionSummary-root MuiAccordionSummary-expanded"
role="button"
tabindex="0"
>
<div
class="MuiAccordionSummary-content MuiAccordionSummary-expanded"
>
<span
class="MuiTypography-root MuiTypography-button"
>

Attributes
</span>
</div>
<div
aria-disabled="false"
aria-hidden="true"
class="MuiButtonBase-root MuiIconButton-root MuiAccordionSummary-expandIcon MuiAccordionSummary-expanded MuiIconButton-edgeEnd"
>
<span
class="MuiIconButton-label"
>
<svg
aria-hidden="true"
class="MuiSvgIcon-root makeStyles-expandIcon"
focusable="false"
viewBox="0 0 24 24"
>
<path
d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
<hr
class="MuiDivider-root"
/>
</svg>
</span>
</div>
</div>
<div
class="MuiCollapse-container MuiCollapse-entered"
style="min-height: 0px;"
>
<div
class="MuiCollapse-wrapper"
>
<div
class="MuiCollapse-wrapperInner"
>
<div
role="region"
>
<div>
Attributes
</div>
<div
class="MuiAccordionDetails-root makeStyles-expansionPanelDetails"
class="makeStyles-field"
>
<div
class="makeStyles-field"
class="makeStyles-fieldName"
>
<div
class="makeStyles-fieldName"
>
score
</div>
<div
class="makeStyles-fieldValue"
>
<div>
37
</div>
score
</div>
<div
class="makeStyles-fieldValue"
>
<div>
37
</div>
</div>
</div>
Expand Down
18 changes: 14 additions & 4 deletions packages/core/BaseFeatureWidget/index.test.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
import { render } from '@testing-library/react'
import React from 'react'
import { types } from 'mobx-state-tree'
import { ConfigurationSchema } from '@jbrowse/core/configuration'
import PluginManager from '../PluginManager'
import { stateModelFactory } from '.'
import { BaseFeatureDetails as ReactComponent } from './BaseFeatureDetail'

test('open up a widget', () => {
console.warn = jest.fn()
const pluginManager = new PluginManager([])
const model = stateModelFactory(pluginManager).create({
type: 'BaseFeatureWidget',

const Session = types.model({
pluginManager: types.optional(types.frozen(), {}),
configuration: ConfigurationSchema('test', {}),
widget: stateModelFactory(pluginManager),
})
const model = Session.create({
widget: { type: 'BaseFeatureWidget' },
})
const { container, getByText } = render(<ReactComponent model={model} />)
model.setFeatureData({
const { container, getByText } = render(
<ReactComponent model={model.widget} />,
)
model.widget.setFeatureData({
start: 2,
end: 102,
strand: 1,
Expand Down
Loading