Skip to content

Commit

Permalink
refactor(app): remove app fixture stubs (#13980)
Browse files Browse the repository at this point in the history
remove fixture stubs throughout desktop/ODD app, update types, and add deck conflict compatibility
checks

closes RAUT-859

---------

Co-authored-by: Brian Cooper <[email protected]>
  • Loading branch information
brenthagen and b-cooper authored Nov 15, 2023
1 parent a462d04 commit e5eb78b
Show file tree
Hide file tree
Showing 71 changed files with 1,324 additions and 1,761 deletions.
102 changes: 45 additions & 57 deletions api-client/src/deck_configuration/__stubs__/index.ts
Original file line number Diff line number Diff line change
@@ -1,73 +1,61 @@
import { v4 as uuidv4 } from 'uuid'

import {
STAGING_AREA_LOAD_NAME,
STANDARD_SLOT_LOAD_NAME,
TRASH_BIN_LOAD_NAME,
WASTE_CHUTE_LOAD_NAME,
SINGLE_LEFT_SLOT_FIXTURE,
SINGLE_CENTER_SLOT_FIXTURE,
SINGLE_RIGHT_SLOT_FIXTURE,
STAGING_AREA_RIGHT_SLOT_FIXTURE,
TRASH_BIN_ADAPTER_FIXTURE,
WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
} from '@opentrons/shared-data'

import type { Fixture } from '@opentrons/shared-data'
import type { DeckConfiguration } from '@opentrons/shared-data'

export const DECK_CONFIG_STUB: { [fixtureLocation: string]: Fixture } = {
cutoutA1: {
fixtureLocation: 'cutoutA1',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
export const DECK_CONFIG_STUB: DeckConfiguration = [
{
cutoutId: 'cutoutA1',
cutoutFixtureId: SINGLE_LEFT_SLOT_FIXTURE,
},
cutoutB1: {
fixtureLocation: 'cutoutB1',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutB1',
cutoutFixtureId: SINGLE_LEFT_SLOT_FIXTURE,
},
cutoutC1: {
fixtureLocation: 'cutoutC1',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutC1',
cutoutFixtureId: SINGLE_LEFT_SLOT_FIXTURE,
},
cutoutD1: {
fixtureLocation: 'cutoutD1',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutD1',
cutoutFixtureId: SINGLE_LEFT_SLOT_FIXTURE,
},
cutoutA2: {
fixtureLocation: 'cutoutA2',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutA2',
cutoutFixtureId: SINGLE_CENTER_SLOT_FIXTURE,
},
cutoutB2: {
fixtureLocation: 'cutoutB2',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutB2',
cutoutFixtureId: SINGLE_CENTER_SLOT_FIXTURE,
},
cutoutC2: {
fixtureLocation: 'cutoutC2',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutC2',
cutoutFixtureId: SINGLE_CENTER_SLOT_FIXTURE,
},
cutoutD2: {
fixtureLocation: 'cutoutD2',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutD2',
cutoutFixtureId: SINGLE_CENTER_SLOT_FIXTURE,
},
cutoutA3: {
fixtureLocation: 'cutoutA3',
loadName: TRASH_BIN_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutA3',
cutoutFixtureId: TRASH_BIN_ADAPTER_FIXTURE,
},
cutoutB3: {
fixtureLocation: 'cutoutB3',
loadName: STANDARD_SLOT_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutB3',
cutoutFixtureId: SINGLE_RIGHT_SLOT_FIXTURE,
},
cutoutC3: {
fixtureLocation: 'cutoutC3',
loadName: STAGING_AREA_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutC3',
cutoutFixtureId: STAGING_AREA_RIGHT_SLOT_FIXTURE,
},
cutoutD3: {
fixtureLocation: 'cutoutD3',
loadName: WASTE_CHUTE_LOAD_NAME,
fixtureId: uuidv4(),
{
cutoutId: 'cutoutD3',
cutoutFixtureId: WASTE_CHUTE_RIGHT_ADAPTER_NO_COVER_FIXTURE,
},
}
]
29 changes: 0 additions & 29 deletions api-client/src/deck_configuration/createDeckConfiguration.ts

This file was deleted.

30 changes: 0 additions & 30 deletions api-client/src/deck_configuration/deleteDeckConfiguration.ts

This file was deleted.

2 changes: 1 addition & 1 deletion api-client/src/deck_configuration/getDeckConfiguration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ import type { HostConfig } from '../types'
export function getDeckConfiguration(
config: HostConfig
): Promise<{ data: DeckConfiguration }> {
return Promise.resolve({ data: Object.values(DECK_CONFIG_STUB) })
return Promise.resolve({ data: DECK_CONFIG_STUB })
}
2 changes: 0 additions & 2 deletions api-client/src/deck_configuration/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
export { createDeckConfiguration } from './createDeckConfiguration'
export { deleteDeckConfiguration } from './deleteDeckConfiguration'
export { getDeckConfiguration } from './getDeckConfiguration'
export { updateDeckConfiguration } from './updateDeckConfiguration'
31 changes: 12 additions & 19 deletions api-client/src/deck_configuration/updateDeckConfiguration.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,25 @@
import { v4 as uuidv4 } from 'uuid'

// import { PATCH, request } from '../request'
// import { PUT, request } from '../request'
import { DECK_CONFIG_STUB } from './__stubs__'

import type { Fixture } from '@opentrons/shared-data'
import type { DeckConfiguration } from '@opentrons/shared-data'
// import type { ResponsePromise } from '../request'
import type { HostConfig } from '../types'

// TODO(bh, 2023-09-26): uncomment and remove deck config stub when backend api is ready
// export function updateDeckConfiguration(
// config: HostConfig,
// data: Omit<Fixture, 'fixtureId'>
// ): ResponsePromise<Fixture> {
// const { fixtureLocation, ...rest } = data
// return request<Fixture, { data: Omit<Fixture, 'fixtureLocation'> }>(
// PATCH,
// `/deck_configuration/${fixtureLocation}`,
// { data: rest },
// config
// )
// data: DeckConfiguration
// ): ResponsePromise<DeckConfiguration> {
// return request<DeckConfiguration, DeckConfiguration>(PUT, '/deck_configuration', data, config)
// }

export function updateDeckConfiguration(
config: HostConfig,
data: Omit<Fixture, 'fixtureId'>
): Promise<{ data: Fixture }> {
const { fixtureLocation } = data
const fixtureId = uuidv4()
DECK_CONFIG_STUB[fixtureLocation] = { ...data, fixtureId }
return Promise.resolve({ data: DECK_CONFIG_STUB[fixtureLocation] })
data: DeckConfiguration
): Promise<{ data: DeckConfiguration }> {
data.forEach((fixture, i) => {
DECK_CONFIG_STUB[i] = fixture
})

return Promise.resolve({ data: DECK_CONFIG_STUB })
}
20 changes: 11 additions & 9 deletions app/src/molecules/DeckThumbnail/__tests__/DeckThumbnail.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import ot3StandardDeckDef from '@opentrons/shared-data/deck/definitions/3/ot3_st
import fixture_tiprack_300_ul from '@opentrons/shared-data/labware/fixtures/2/fixture_tiprack_300_ul.json'
import {
BaseDeck,
EXTENDED_DECK_CONFIG_FIXTURE,
partialComponentPropsMatcher,
renderWithProviders,
} from '@opentrons/components'
Expand All @@ -24,7 +23,7 @@ import {
import { i18n } from '../../../i18n'
import { useAttachedModules } from '../../../organisms/Devices/hooks'
import { getStandardDeckViewLayerBlockList } from '../utils/getStandardDeckViewLayerBlockList'
import { getDeckConfigFromProtocolCommands } from '../../../resources/deck_configuration/utils'
import { getSimplestDeckConfigForProtocolCommands } from '../../../resources/deck_configuration/utils'
import { getAttachedProtocolModuleMatches } from '../../../organisms/ProtocolSetupModulesAndDeck/utils'
import { getProtocolModulesInfo } from '../../../organisms/Devices/ProtocolRun/utils/getProtocolModulesInfo'
import { getLabwareRenderInfo } from '../../../organisms/Devices/ProtocolRun/utils/getLabwareRenderInfo'
Expand Down Expand Up @@ -66,8 +65,8 @@ const mockParseLabwareInfoByLiquidId = parseLabwareInfoByLiquidId as jest.Mocked
const mockUseAttachedModules = useAttachedModules as jest.MockedFunction<
typeof useAttachedModules
>
const mockGetDeckConfigFromProtocolCommands = getDeckConfigFromProtocolCommands as jest.MockedFunction<
typeof getDeckConfigFromProtocolCommands
const mockGetSimplestDeckConfigForProtocolCommands = getSimplestDeckConfigForProtocolCommands as jest.MockedFunction<
typeof getSimplestDeckConfigForProtocolCommands
>
const mockGetLabwareRenderInfo = getLabwareRenderInfo as jest.MockedFunction<
typeof getLabwareRenderInfo
Expand Down Expand Up @@ -127,9 +126,11 @@ describe('DeckThumbnail', () => {
mockUseAttachedModules.mockReturnValue(
mockFetchModulesSuccessActionPayloadModules
)
when(mockGetDeckConfigFromProtocolCommands)
when(mockGetSimplestDeckConfigForProtocolCommands)
.calledWith(commands)
.mockReturnValue(EXTENDED_DECK_CONFIG_FIXTURE)
.mockReturnValue([])
// TODO(bh, 2023-11-13): mock the cutout config protocol spec
// .mockReturnValue(EXTENDED_DECK_CONFIG_FIXTURE)
when(mockGetLabwareRenderInfo).mockReturnValue({})
when(mockGetProtocolModulesInfo)
.calledWith(protocolAnalysis, ot2StandardDeckDef as any)
Expand Down Expand Up @@ -239,9 +240,11 @@ describe('DeckThumbnail', () => {
mockUseAttachedModules.mockReturnValue(
mockFetchModulesSuccessActionPayloadModules
)
when(mockGetDeckConfigFromProtocolCommands)
when(mockGetSimplestDeckConfigForProtocolCommands)
.calledWith(commands)
.mockReturnValue(EXTENDED_DECK_CONFIG_FIXTURE)
.mockReturnValue([])
// TODO(bh, 2023-11-13): mock the cutout config protocol spec
// .mockReturnValue(EXTENDED_DECK_CONFIG_FIXTURE)
when(mockGetLabwareRenderInfo).mockReturnValue({
[MOCK_300_UL_TIPRACK_ID]: {
labwareDef: fixture_tiprack_300_ul as LabwareDefinition2,
Expand Down Expand Up @@ -295,7 +298,6 @@ describe('DeckThumbnail', () => {
deckLayerBlocklist: getStandardDeckViewLayerBlockList(
FLEX_ROBOT_TYPE
),
deckConfig: EXTENDED_DECK_CONFIG_FIXTURE,
labwareLocations: expect.anything(),
moduleLocations: expect.anything(),
})
Expand Down
4 changes: 2 additions & 2 deletions app/src/molecules/DeckThumbnail/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {
} from '@opentrons/api-client'

import { getStandardDeckViewLayerBlockList } from './utils/getStandardDeckViewLayerBlockList'
import { getDeckConfigFromProtocolCommands } from '../../resources/deck_configuration/utils'
import { getSimplestDeckConfigForProtocolCommands } from '../../resources/deck_configuration/utils'
import { getLabwareRenderInfo } from '../../organisms/Devices/ProtocolRun/utils/getLabwareRenderInfo'
import { getProtocolModulesInfo } from '../../organisms/Devices/ProtocolRun/utils/getProtocolModulesInfo'
import { useAttachedModules } from '../../organisms/Devices/hooks'
Expand Down Expand Up @@ -43,7 +43,7 @@ export function DeckThumbnail(props: DeckThumbnailProps): JSX.Element | null {
protocolAnalysis.commands
)

const deckConfig = getDeckConfigFromProtocolCommands(
const deckConfig = getSimplestDeckConfigForProtocolCommands(
protocolAnalysis.commands
)
const liquids = protocolAnalysis.liquids
Expand Down
Loading

0 comments on commit e5eb78b

Please sign in to comment.