Skip to content

Commit

Permalink
fix cypress
Browse files Browse the repository at this point in the history
  • Loading branch information
jerader committed Feb 10, 2025
1 parent 4fdd39c commit 9ec832f
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 27 deletions.
4 changes: 4 additions & 0 deletions components/src/hardware-sim/Deck/RobotCoordsForeignDiv.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ export interface RobotCoordsForeignDivProps {
innerDivProps?: ComponentProps<typeof Box>
transformWithSVG?: boolean
extraTransform?: string
/** optional data-testid to test foreignObjects in cypress */
dataTestId?: string
}

export const RobotCoordsForeignDiv = (
Expand All @@ -27,11 +29,13 @@ export const RobotCoordsForeignDiv = (
innerDivProps,
transformWithSVG = false,
extraTransform = '',
dataTestId = '',
} = props

const transform = `scale(1, -1) ${extraTransform}`
return (
<foreignObject
data-testid={dataTestId}
{...{ x, y, height, width, ...outerProps }}
transform={transformWithSVG ? transform : extraTransform}
>
Expand Down
45 changes: 19 additions & 26 deletions protocol-designer/cypress/support/SetupSteps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ export enum SetupContent {
ModulePageH = 'Add your modules',
ModulePageB = 'Select modules to use in your protocol.',
EditProtocol = 'Edit protocol',
EditSlot = 'Edit slot',
EditLabware = 'Edit labware',
AddLabwareToDeck = 'Add hardware/labware',
EditHardwareLabwareOnDeck = 'Edit hardware/labware',
LabwareH = 'Labware',
Expand All @@ -126,6 +126,10 @@ export enum SetupContent {
Save = 'Save',
}

export const RegexSetupContent = {
slotText: /Edit (slot|labware)/i,
}

export enum SetupLocators {
Confirm = 'button:contains("Confirm")',
GoBack = 'button:contains("Go back")',
Expand All @@ -149,7 +153,7 @@ export enum SetupLocators {
TempdeckTempInput = 'input[name="targetTemperature"]',
}

const chooseDeckSlot = (
export const chooseDeckSlot = (
slot: string
): Cypress.Chainable<JQuery<HTMLElement>> => {
const deckSlots: Record<
Expand All @@ -167,29 +171,18 @@ const chooseDeckSlot = (
| 'D3',
() => Cypress.Chainable<JQuery<HTMLElement>>
> = {
A1: () =>
cy.contains('foreignObject[x="0"][y="321"]', SetupContent.EditSlot),
A2: () =>
cy.contains('foreignObject[x="164"][y="321"]', SetupContent.EditSlot),
A3: () =>
cy.contains('foreignObject[x="328"][y="321"]', SetupContent.EditSlot),
B1: () =>
cy.contains('foreignObject[x="0"][y="214"]', SetupContent.EditSlot),
B2: () =>
cy.contains('foreignObject[x="164"][y="214"]', SetupContent.EditSlot),
B3: () =>
cy.contains('foreignObject[x="328"][y="214"]', SetupContent.EditSlot),
C1: () =>
cy.contains('foreignObject[x="0"][y="107"]', SetupContent.EditSlot),
C2: () =>
cy.contains('foreignObject[x="164"][y="107"]', SetupContent.EditSlot),
C3: () =>
cy.contains('foreignObject[x="328"][y="107"]', SetupContent.EditSlot),
D1: () => cy.contains('foreignObject[x="0"][y="0"]', SetupContent.EditSlot),
D2: () =>
cy.contains('foreignObject[x="164"][y="0"]', SetupContent.EditSlot),
D3: () =>
cy.contains('foreignObject[x="328"][y="0"]', SetupContent.EditSlot),
A1: () => cy.contains('[data-testid="A1"]', RegexSetupContent.slotText),
A2: () => cy.contains('[data-testid="A2"]', RegexSetupContent.slotText),
A3: () => cy.contains('[data-testid="A3"]', RegexSetupContent.slotText),
B1: () => cy.contains('[data-testid="B1"]', RegexSetupContent.slotText),
B2: () => cy.contains('[data-testid="B2"]', RegexSetupContent.slotText),
B3: () => cy.contains('[data-testid="B3"]', RegexSetupContent.slotText),
C1: () => cy.contains('[data-testid="C1"]', RegexSetupContent.slotText),
C2: () => cy.contains('[data-testid="C2"]', RegexSetupContent.slotText),
C3: () => cy.contains('[data-testid="C3"]', RegexSetupContent.slotText),
D1: () => cy.contains('[data-testid="D1"]', RegexSetupContent.slotText),
D2: () => cy.contains('[data-testid="D2"]', RegexSetupContent.slotText),
D3: () => cy.contains('[data-testid="D3"]', RegexSetupContent.slotText),
}

const slotAction = deckSlots[slot as keyof typeof deckSlots]
Expand Down Expand Up @@ -335,7 +328,7 @@ export const executeSetupSteps = (action: SetupActions): void => {
chooseDeckSlot('C2')
.find('.Box-sc-8ozbhb-0.kIDovv')
.find('a[role="button"]')
.contains(SetupContent.EditSlot)
.contains(SetupContent.EditLabware)
.click({ force: true })
break
case SetupActions.SelectArmadillo96WellPlate: // New case for selecting Armadillo plate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ export const AdapterControls = (
/>
) : (
<RobotCoordsForeignDiv
dataTestId={itemId}
x={onDeck ? slotPosition[0] : 0}
y={onDeck ? slotPosition[1] : 0}
width={slotBoundingBox.xDimension}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ export const LabwareControls = (
) : (
<RobotCoordsForeignDiv
{...{ x, y, width, height }}
dataTestId={itemId}
innerDivProps={{
style: {
opacity: hoverOpacity,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ export const SlotControls = (props: SlotControlsProps): JSX.Element | null => {
/>
) : (
<RobotCoordsForeignDiv
dataTestId={itemId}
x={slotPosition[0]}
y={slotPosition[1]}
width={slotBoundingBox.xDimension}
Expand Down Expand Up @@ -173,7 +174,7 @@ export const SlotControls = (props: SlotControlsProps): JSX.Element | null => {
<StyledText desktopStyle="bodyDefaultSemiBold">
{isOver
? t(`overlay.slot.place_here`)
: t('starting_deck_state:edit_labware')}
: t('starting_deck_state:edit_slot')}
</StyledText>
</Link>
</Flex>
Expand Down

0 comments on commit 9ec832f

Please sign in to comment.