chore[GH-#836]: Add unit tests for shareBoardComponent (#1810)
This commit is contained in:
parent
470be213ec
commit
941a47aead
2 changed files with 686 additions and 0 deletions
|
@ -0,0 +1,468 @@
|
||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent return shareBoardComponent and click Copy link 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copied!
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent return shareBoardComponent and click Regenerate token 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copy link
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent return shareBoardComponent and click Switch 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copy link
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent return shareBoardComponent and click Switch without sharing 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=aToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=aToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copy link
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent should match snapshot 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Publish and share this board with anyone who has the link
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent should match snapshot with sharing 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/plugins/focalboard/workspace/1/shared/1/1?r=oneToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copy link
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`src/components/shareBoardComponent should match snapshot with sharing and without workspaceId 1`] = `
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="Modal bottom"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="toolbar hideOnWidescreen"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
aria-label="Close"
|
||||||
|
class="Button IconButton"
|
||||||
|
title="Close"
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="CompassIcon icon-close CloseIcon"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="ShareBoardComponent"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
Anyone with the link can view this board and all cards in it.
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="Switch on"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="octo-switch-inner"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="shareUrl"
|
||||||
|
href="http://localhost/shared/1/1?r=oneToken"
|
||||||
|
rel="noreferrer"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
http://localhost/shared/1/1?r=oneToken
|
||||||
|
</a>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Copy link
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="row"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
>
|
||||||
|
<span>
|
||||||
|
Regenerate token
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
218
webapp/src/components/shareBoardComponent.test.tsx
Normal file
218
webapp/src/components/shareBoardComponent.test.tsx
Normal file
|
@ -0,0 +1,218 @@
|
||||||
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||||
|
// See LICENSE.txt for license information.
|
||||||
|
import {act, render, screen} from '@testing-library/react'
|
||||||
|
import userEvent from '@testing-library/user-event'
|
||||||
|
|
||||||
|
import React from 'react'
|
||||||
|
import {MemoryRouter} from 'react-router'
|
||||||
|
import {mocked} from 'ts-jest/utils'
|
||||||
|
|
||||||
|
import {ISharing} from '../blocks/sharing'
|
||||||
|
import {TestBlockFactory} from '../test/testBlockFactory'
|
||||||
|
import {wrapDNDIntl} from '../testUtils'
|
||||||
|
import client from '../octoClient'
|
||||||
|
import {Utils} from '../utils'
|
||||||
|
|
||||||
|
import ShareBoardComponent from './shareBoardComponent'
|
||||||
|
|
||||||
|
jest.useFakeTimers()
|
||||||
|
|
||||||
|
const boardId = '1'
|
||||||
|
const workspaceId: string|undefined = boardId
|
||||||
|
const viewId = boardId
|
||||||
|
|
||||||
|
jest.mock('../octoClient')
|
||||||
|
jest.mock('../utils')
|
||||||
|
const mockedOctoClient = mocked(client, true)
|
||||||
|
const mockedUtils = mocked(Utils, true)
|
||||||
|
let params = {}
|
||||||
|
jest.mock('react-router', () => {
|
||||||
|
const originalModule = jest.requireActual('react-router')
|
||||||
|
|
||||||
|
return {
|
||||||
|
...originalModule,
|
||||||
|
useRouteMatch: jest.fn(() => {
|
||||||
|
return {
|
||||||
|
url: 'http://localhost/',
|
||||||
|
path: '/',
|
||||||
|
params,
|
||||||
|
isExact: true,
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const board = TestBlockFactory.createBoard()
|
||||||
|
board.id = boardId
|
||||||
|
|
||||||
|
describe('src/components/shareBoardComponent', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
jest.clearAllMocks()
|
||||||
|
params = {
|
||||||
|
boardId,
|
||||||
|
viewId,
|
||||||
|
workspaceId,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
test('should match snapshot', async () => {
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(undefined)
|
||||||
|
let container
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('should match snapshot with sharing', async () => {
|
||||||
|
const sharing:ISharing = {
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'oneToken',
|
||||||
|
}
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
let container
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('should match snapshot with sharing and without workspaceId', async () => {
|
||||||
|
const sharing:ISharing = {
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'oneToken',
|
||||||
|
}
|
||||||
|
params = {
|
||||||
|
boardId,
|
||||||
|
viewId,
|
||||||
|
}
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
let container
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('return shareBoardComponent and click Copy link', async () => {
|
||||||
|
const sharing:ISharing = {
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'oneToken',
|
||||||
|
}
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
let container: Element | undefined
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
const copyLinkElement = screen.getByRole('button', {name: 'Copy link'})
|
||||||
|
expect(copyLinkElement).toBeDefined()
|
||||||
|
userEvent.click(copyLinkElement)
|
||||||
|
expect(mockedUtils.copyTextToClipboard).toBeCalledTimes(1)
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('return shareBoardComponent and click Regenerate token', async () => {
|
||||||
|
window.confirm = jest.fn(() => {
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
const sharing:ISharing = {
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'oneToken',
|
||||||
|
}
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
let container: Element | undefined
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
sharing.token = 'anotherToken'
|
||||||
|
mockedUtils.createGuid.mockReturnValue('anotherToken')
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
mockedOctoClient.setSharing.mockResolvedValue(true)
|
||||||
|
const regenerateTokenElement = screen.getByRole('button', {name: 'Regenerate token'})
|
||||||
|
expect(regenerateTokenElement).toBeDefined()
|
||||||
|
userEvent.click(regenerateTokenElement)
|
||||||
|
await act(async () => {
|
||||||
|
jest.runOnlyPendingTimers()
|
||||||
|
})
|
||||||
|
expect(mockedOctoClient.setSharing).toBeCalledTimes(1)
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('return shareBoardComponent and click Switch', async () => {
|
||||||
|
const sharing:ISharing = {
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'oneToken',
|
||||||
|
}
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(sharing)
|
||||||
|
let container: Element | undefined
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
})
|
||||||
|
const switchElement = container?.querySelector('.Switch')
|
||||||
|
expect(switchElement).toBeDefined()
|
||||||
|
userEvent.click(switchElement!)
|
||||||
|
expect(mockedOctoClient.setSharing).toBeCalledTimes(1)
|
||||||
|
expect(mockedOctoClient.getSharing).toBeCalledTimes(1)
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
test('return shareBoardComponent and click Switch without sharing', async () => {
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue(undefined)
|
||||||
|
mockedUtils.createGuid.mockReturnValue('aToken')
|
||||||
|
let container: Element | undefined
|
||||||
|
await act(async () => {
|
||||||
|
const result = render(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>), {wrapper: MemoryRouter})
|
||||||
|
container = result.container
|
||||||
|
mockedOctoClient.getSharing.mockResolvedValue({
|
||||||
|
id: boardId,
|
||||||
|
enabled: true,
|
||||||
|
token: 'aToken',
|
||||||
|
})
|
||||||
|
const switchElement = container?.querySelector('.Switch')
|
||||||
|
expect(switchElement).toBeDefined()
|
||||||
|
userEvent.click(switchElement!)
|
||||||
|
jest.runOnlyPendingTimers()
|
||||||
|
result.rerender(wrapDNDIntl(
|
||||||
|
<ShareBoardComponent
|
||||||
|
boardId={board.id}
|
||||||
|
onClose={jest.fn()}
|
||||||
|
/>))
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(mockedOctoClient.setSharing).toBeCalledTimes(1)
|
||||||
|
expect(mockedOctoClient.getSharing).toBeCalledTimes(2)
|
||||||
|
expect(mockedUtils.createGuid).toBeCalledTimes(1)
|
||||||
|
expect(container).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in a new issue