Skip to content

Commit

Permalink
chore(theme): ✅ Add general theme settings tests
Browse files Browse the repository at this point in the history
  • Loading branch information
baptisteArno committed Jan 24, 2022
1 parent 079cf5e commit 619d10a
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export const BackgroundTypeRadioButtons = ({
backgroundType,
onBackgroundTypeChange,
}: Props) => {
const options = ['Color', 'Image', 'None']
const options = ['Color', 'None']

const { getRootProps, getRadioProps } = useRadioGroup({
name: 'background-type',
Expand Down
5 changes: 3 additions & 2 deletions apps/builder/components/theme/GeneralContent/ColorPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ export const ColorPicker = ({ initialColor, onColorChange }: Props) => {
<Popover variant="picker">
<PopoverTrigger>
<Button
aria-label={color}
aria-label={'Pick a color'}
background={color}
height="22px"
width="22px"
Expand Down Expand Up @@ -85,7 +85,8 @@ export const ColorPicker = ({ initialColor, onColorChange }: Props) => {
<Input
borderRadius={3}
marginTop={3}
placeholder="red.100"
placeholder="#2a9d8f"
aria-label="Color value"
size="sm"
value={color}
onChange={(e) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react'
import { Text, Flex } from '@chakra-ui/react'
import { Text, HStack } from '@chakra-ui/react'
import { SearchableDropdown } from '../../../shared/SearchableDropdown'

type FontSelectorProps = {
Expand Down Expand Up @@ -34,13 +34,13 @@ export const FontSelector = ({
}

return (
<Flex justify="space-between" align="center">
<HStack justify="space-between" align="center">
<Text>Font</Text>
<SearchableDropdown
selectedItem={activeFont}
items={googleFonts}
onValueChange={handleFontSelected}
/>
</Flex>
</HStack>
)
}
36 changes: 36 additions & 0 deletions apps/builder/cypress/tests/theme/general.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { getIframeBody } from 'cypress/support'

describe('General theme settings', () => {
beforeEach(() => {
cy.task('seed')
cy.signOut()
})

it.only('should reflect changes in real time', () => {
cy.loadTypebotFixtureInDatabase('typebots/integrations/webhook.json')
cy.signIn('test2@gmail.com')
cy.visit('/typebots/typebot4/theme')
cy.findByRole('button', { name: 'General' }).click()

// Font
cy.findByDisplayValue('Open Sans').clear().type('Roboto')
cy.findByRole('menuitem', { name: 'Roboto Slab' }).click()
getIframeBody()
.findByTestId('container')
.should('have.css', 'font-family')
.should('eq', '"Roboto Slab"')

// BG color
getIframeBody()
.findByTestId('container')
.should('have.css', 'background-color')
.should('eq', 'rgba(0, 0, 0, 0)')
cy.findByDisplayValue('Color').check({ force: true })
cy.findByRole('button', { name: 'Pick a color' }).click()
cy.findByRole('textbox', { name: 'Color value' }).clear().type('#2a9d8f')
getIframeBody()
.findByTestId('container')
.should('have.css', 'background-color')
.should('eq', 'rgb(42, 157, 143)')
})
})
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ import { TypebotViewer } from 'bot-engine'
import { useTypebot } from 'contexts/TypebotContext/TypebotContext'
import React, { useMemo } from 'react'
import { parseTypebotToPublicTypebot } from 'services/publicTypebot'
import { SideMenu } from './SideMenu'
import { SideMenu } from '../../components/theme/SideMenu'

export const ThemeContent = () => {
const { typebot } = useTypebot()
const publicTypebot = useMemo(
() => (typebot ? parseTypebotToPublicTypebot(typebot) : undefined),
[typebot]
// eslint-disable-next-line react-hooks/exhaustive-deps
[typebot?.theme]
)
return (
<Flex h="full" w="full">
Expand Down
2 changes: 1 addition & 1 deletion apps/builder/pages/typebots/[typebotId]/theme.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { Flex } from '@chakra-ui/layout'
import { Seo } from 'components/Seo'
import { TypebotHeader } from 'components/shared/TypebotHeader'
import { ThemeContent } from 'components/theme/ThemeContent'
import { ThemeContent } from 'layouts/theme/ThemeContent'
import React from 'react'

const ThemePage = () => (
Expand Down
1 change: 1 addition & 0 deletions packages/bot-engine/src/components/TypebotViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ export const TypebotViewer = ({
// We set this as inline style to avoid color flash for SSR
backgroundColor: containerBgColor,
}}
data-testid="container"
>
<div className="flex w-full h-full justify-center">
<ConversationContainer
Expand Down
2 changes: 1 addition & 1 deletion packages/bot-engine/src/services/theme.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const setCssVariablesValue = (
background.type === BackgroundType.IMAGE
? cssVariableNames.container.bg.image
: cssVariableNames.container.bg.color,
background.content
background.type === BackgroundType.NONE ? 'transparent' : background.content
)
documentStyle.setProperty(cssVariableNames.container.fontFamily, font)
}

0 comments on commit 619d10a

Please sign in to comment.