/*
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import * as UseIsDocumentVisibleModule from '../../../../hooks/common/use-is-document-visible'
import * as UseNoteMarkdownContent from '../../../../hooks/common/use-note-markdown-content'
import { useHasMarkdownContentBeenChangedInBackground } from './use-has-markdown-content-been-changed-in-background'
import { render } from '@testing-library/react'
import React, { Fragment } from 'react'
jest.mock('../../../../hooks/common/use-is-document-visible')
jest.mock('../../../../hooks/common/use-note-markdown-content')
describe('use has markdown content been changed in background', () => {
const TestComponent: React.FC = () => {
const visible = useHasMarkdownContentBeenChangedInBackground()
return {String(visible)}
}
let documentVisible = true
let noteContent = 'content'
beforeEach(() => {
jest.spyOn(UseIsDocumentVisibleModule, 'useIsDocumentVisible').mockImplementation(() => documentVisible)
jest.spyOn(UseNoteMarkdownContent, 'useNoteMarkdownContent').mockImplementation(() => noteContent)
})
it('returns the correct value', () => {
documentVisible = true
noteContent = 'content1'
const view = render()
expect(view.container.textContent).toBe('false')
expect(view.container.textContent).toBe('false') //intentionally no change
noteContent = 'content2'
view.rerender()
expect(view.container.textContent).toBe('false')
documentVisible = false
view.rerender()
expect(view.container.textContent).toBe('false')
noteContent = 'content3'
view.rerender()
expect(view.container.textContent).toBe('true')
noteContent = 'content2'
view.rerender()
expect(view.container.textContent).toBe('true')
documentVisible = true
view.rerender()
expect(view.container.textContent).toBe('false')
})
})