// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.

import React from 'react'

import {MockStoreEnhanced} from "redux-mock-store"

import {Provider as ReduxProvider} from 'react-redux'

import {render} from "@testing-library/react"

import {createMemoryHistory, History} from "history"

import {Router} from "react-router-dom"

import {Team} from "../../store/teams"
import {TestBlockFactory} from "../../test/testBlockFactory"

import {mockStateStore, wrapDNDIntl} from "../../testUtils"

import BoardSwitcherDialog from "./boardSwitcherDialog"


describe('component/BoardSwitcherDialog', () => {
    const team1: Team = {
        id: 'team-id-1',
        title: 'Dunder Mifflin',
        signupToken: '',
        updateAt: 0,
        modifiedBy: 'michael-scott',
    }

    const team2: Team = {
        id: 'team-id-2',
        title: 'Michael Scott Paper Company',
        signupToken: '',
        updateAt: 0,
        modifiedBy: 'michael-scott',
    }

    const me = TestBlockFactory.createUser()

    const state = {
        users: {
            me: me,
        },
        teams: {
            allTeams: [team1, team2],
            current: team1,
        }
    }

    let store:MockStoreEnhanced<unknown, unknown>
    let history: History


    beforeEach(() => {
        store = mockStateStore([], state)
        history = createMemoryHistory()
    })


    test('base case', () => {
        const onCloseHandler = jest.fn()
        const component = wrapDNDIntl(
            <Router history={history}>
                <ReduxProvider store={store}>
                    <BoardSwitcherDialog onClose={onCloseHandler}/>
                </ReduxProvider>
            </Router>
        )

        const {container} = render(component)
        expect(container).toMatchSnapshot()
    })
})
