Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6071984
feat: add language drawer
tataihono Mar 1, 2022
69134a5
chore: add todo comment
tataihono Mar 1, 2022
dbef336
chore: move to language folder with drawer
tataihono Mar 1, 2022
770f5b7
chore: update drawer spec
tataihono Mar 1, 2022
a493704
chore: allow languages to be passed to drawer
tataihono Mar 1, 2022
b24d049
chore: create api-languages
tataihono Mar 3, 2022
a62b237
feat: fetch data from arclight api
tataihono Mar 3, 2022
7b897a9
chore: match translation object
tataihono Mar 7, 2022
158838f
feat: implement language module
GeronimoJohn Mar 7, 2022
46f5a6c
refactor: language and translation module
GeronimoJohn Mar 8, 2022
2157021
fix: language getAll logic
GeronimoJohn Mar 9, 2022
8a662ae
chore: add arclight api key env
tataihono Mar 10, 2022
463e921
Merge branch '22-02-TN-chore-add-languages-api' of https://github.com…
tataihono Mar 10, 2022
8347572
chore: refactor seed
tataihono Mar 10, 2022
e73dd6b
chore: add translation field decorator
tataihono Mar 10, 2022
326e2b5
Merge branch 'main' into 22-02-TN-chore-add-languages-api
tataihono Mar 10, 2022
e172ad7
chore: change lint syntax
tataihono Mar 11, 2022
f531d6f
fix: nest decorator lint
tataihono Mar 11, 2022
0bc57eb
Merge branch '22-02-TN-chore-add-languages-api' into 22-02-TN-feature…
tataihono Mar 11, 2022
5ee587a
chore: add api to drawer
tataihono Mar 11, 2022
fa0c203
chore: add overflow for drawer
tataihono Mar 11, 2022
921e94c
fix: languageId should be id
tataihono Mar 11, 2022
99efb10
Merge branch '22-02-TN-chore-add-languages-api' into 22-02-TN-feature…
tataihono Mar 11, 2022
1af311c
chore: run codegen
tataihono Mar 11, 2022
0fd5a46
Merge branch 'main' into 22-02-TN-feature-add-language-drawer
tataihono Mar 16, 2022
b52bb5e
fix: remove env file
tataihono Mar 16, 2022
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
28 changes: 28 additions & 0 deletions apps/journeys-admin/__generated__/GetLanguages.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
import { MockedProvider } from '@apollo/client/testing'
import { fireEvent, render, waitFor } from '@testing-library/react'
import { GET_LANGUAGES } from './Drawer'
import { Drawer } from '.'

jest.mock('@mui/material/useMediaQuery', () => ({
__esModule: true,
default: jest.fn(() => true)
}))

describe('LanguageDrawer', () => {
const mocks = [
{
request: {
query: GET_LANGUAGES,
variables: {
languageId: '529'
}
},
result: {
data: {
languages: [
{
id: '529',
name: [
{
value: 'English',
primary: true
}
]
},
{
id: '496',
name: [
{
value: 'Français',
primary: true
},
{
value: 'French',
primary: false
}
]
},
{
id: '1106',
name: [
{
value: 'Deutsch',
primary: true
},
{
value: 'German, Standard',
primary: false
}
]
}
]
}
}
}
]

it('should call onClose when closed', () => {
const handleClose = jest.fn()
const { getByRole } = render(
<MockedProvider mocks={mocks}>
<Drawer
open={true}
onClose={handleClose}
onChange={jest.fn()}
selectedIds={[]}
currentLanguageId="529"
/>
</MockedProvider>
)
fireEvent.click(getByRole('button', { name: 'Close' }))
expect(handleClose).toHaveBeenCalled()
})

it('should select languages based on selectedIds', async () => {
const handleClose = jest.fn()
const { getByRole } = render(
<MockedProvider mocks={mocks}>
<Drawer
open={true}
onClose={handleClose}
onChange={jest.fn()}
selectedIds={['529']}
currentLanguageId="529"
/>
</MockedProvider>
)
await waitFor(() =>
expect(getByRole('checkbox', { name: 'English English' })).toBeChecked()
)
expect(getByRole('checkbox', { name: 'French Français' })).not.toBeChecked()
})

it('should call onChange and onClose when Apply clicked', async () => {
const handleChange = jest.fn()
const handleClose = jest.fn()
const { getByRole } = render(
<MockedProvider mocks={mocks}>
<Drawer
open={true}
onClose={handleClose}
onChange={handleChange}
selectedIds={['529']}
currentLanguageId="529"
/>
</MockedProvider>
)
await waitFor(() =>
expect(getByRole('checkbox', { name: 'English English' })).toBeChecked()
)
fireEvent.click(getByRole('checkbox', { name: 'English English' }))
fireEvent.click(getByRole('checkbox', { name: 'French Français' }))
fireEvent.click(getByRole('button', { name: 'Apply' }))
expect(handleChange).toHaveBeenCalledWith(['496'])
expect(handleClose).toHaveBeenCalled()
})

it('should clear selection when Clear clicked', async () => {
const handleChange = jest.fn()
const { getByRole } = render(
<MockedProvider mocks={mocks}>
<Drawer
open={true}
onClose={jest.fn()}
onChange={handleChange}
selectedIds={['529']}
currentLanguageId="529"
/>
</MockedProvider>
)
await waitFor(() =>
expect(getByRole('checkbox', { name: 'English English' })).toBeChecked()
)
fireEvent.click(getByRole('button', { name: 'Clear' }))
expect(getByRole('button', { name: 'Clear' })).toBeDisabled()
fireEvent.click(getByRole('checkbox', { name: 'French Français' }))
fireEvent.click(getByRole('button', { name: 'Apply' }))
expect(handleChange).toHaveBeenCalledWith(['496'])
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import { Story, Meta } from '@storybook/react'
import { useState } from 'react'
import { MockedProvider } from '@apollo/client/testing'
import { simpleComponentConfig } from '../../../../../libs/storybook'
import { GET_LANGUAGES } from './Drawer'
import { Drawer } from '.'

const DrawerStory = {
...simpleComponentConfig,
component: Drawer,
title: 'Journeys-Admin/Editor/VideoLibrary/LanguageFilter/Drawer',
argTypes: { onSelect: { action: 'onSelect' } }
}

const Template: Story = ({ onSelect }) => {
const [open, setOpen] = useState(true)
const [selectedIds, setSelectedIds] = useState(['en'])
const handleChange = (selectedIds: string[]): void => {
setSelectedIds(selectedIds)
onSelect(selectedIds)
}

return (
<MockedProvider
mocks={[
{
request: {
query: GET_LANGUAGES,
variables: {
languageId: '529'
}
},
result: {
data: {
languages: [
{
id: '529',
name: [
{
value: 'English',
primary: true
}
]
},
{
id: '496',
name: [
{
value: 'Français',
primary: true
},
{
value: 'French',
primary: false
}
]
},
{
id: '1106',
name: [
{
value: 'Deutsch',
primary: true
},
{
value: 'German, Standard',
primary: false
}
]
}
]
}
}
}
]}
>
<Drawer
open={open}
onClose={() => setOpen(false)}
onChange={handleChange}
selectedIds={selectedIds}
currentLanguageId="529"
/>
</MockedProvider>
)
}

export const Default = Template.bind({})

export default DrawerStory as Meta
Loading