1
0
mirror of https://github.com/oceanprotocol/market.git synced 2024-12-02 05:57:29 +01:00
market/tests/unit/components/CookieModule.test.tsx
Moritz Kirstein 46a16a3043
GDPR Compliance (#796)
* add cookie utils

* add gdpr metadata for ppc

* add graphql typeDefs for GDPR metadata

* add ppc variable to app config

* add ppc user preference

* add switch component

* add ppc components

* add cookie consent provider

* add consent provider to wrapRootElement

* add ppc to app component

* add cookie button to footer component

* add ppc to site metadata query

* add styles for buttons in footer

* add switch component unit tests

* renewed siteMetadata json for testing

* add gdpr metadata for testing

* add cookie module unit test

* add cookie module tests

* add customizable format to time component

* add english privacy policy

* add privacy policy slugs to user preferences and appConfig

* add privacy policy components

* add autolink for policy md navigation

* only show language select for multiple policies

* add gatsby policy page creation

* use new privacy slug user preference

* add to top button styling for markdown pages

* add policies for de, es & fr

* add pointer events to toTop buttons css

* add privacy policy basic unit test

* outsource scroll button component

* import cleanup

* add customizable delay for debounce

* add scroll button unit tests

* add disclaimer component

* add disclaimer fields as optional fields in PublishJsonData

* add acces type disclaimer

* adjusted help for desc and author fields

* add disclaimer unit tests

* minor adjustment to test

* add print button to history page

* naming changes for better readability

* add cookies hash to policies

* ppc disabled per default

* fix react unknown prop for disclaimer

* minor adjustments to cookie utils

* add gdpr example file

* change exposed gdpr metadata scope by useConsent

* update README

* readme fixes

* emoji fix

* added imprint

* adjustments to gdpr.json structure and related graphql type

* add default values for ppc

* Update app.config.js

Fixed typo.

* change variable name for consistency, remove console logs

* readability

* adjust css selector order to be consistent

* Update fr.md

updated policy

* Update es.md

updated policy

* Update en.md

updated policy

* Update de.md

* fix type issue

* replace language select input with links

* remove scroll button from codebase

* change privacy policy route to /privacy

* remove Do Not Track detection

* add size to checkbox / radio inputs

* replace switch component with checkbox inputs

* fix plain text links

* remove console log

* refactor privacy policy pages to use PageMarkdown template

* setup useUserPreferences mock for unit tests

* unit tests forprivacy policy components

* setup discalimer to use alert component

* Apply .env suggestions from code review

Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>

* move gdpr example to gdpr.json

* adjustments to address .env approach for appConfig.privacyPreferenceCenter

* update readme

* add small styling option to ppc

* update README

* add ppc unit tests

* update comments

* Update README.md

Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>

* Merge print into profile history

* add inifiniteApproval to UserPreference fixture

* changed default styling of PPC to small

Co-authored-by: Frederic Schwill <41265505+fr-3deric@users.noreply.github.com>
Co-authored-by: MeikeMolitor <88214332+MeikeMolitor@users.noreply.github.com>
Co-authored-by: Jamie Hewitt <jamie.hewitt15@gmail.com>
2021-10-12 09:00:57 +01:00

61 lines
1.8 KiB
TypeScript

import React from 'react'
import { fireEvent, render, screen } from '@testing-library/react'
import CookieModule, {
CookieModuleProps
} from '../../../src/components/molecules/CookieModule'
import CookieConsent, {
ConsentContext,
ConsentProviderValue,
CookieConsentStatus
} from '../../../src/providers/CookieConsent'
import { useGdprMetadata } from '../../../src/hooks/useGdprMetadata'
const cookieProps: CookieModuleProps = {
title: 'Title',
desc: 'Description',
cookieName: 'CookieName'
}
jest.resetModules()
describe('CookieModule', () => {
it('renders correctly without crashing', () => {
const { container } = render(
<CookieConsent>
<CookieModule {...cookieProps} />
</CookieConsent>
)
const moduleWrapper = container.querySelector('.wrapper')
const moduleHeader = moduleWrapper.querySelector('.header')
const moduleSwitch = moduleWrapper.querySelector('.switch')
const moduleDesc = moduleWrapper.querySelector('.description')
expect(moduleWrapper).toBeInTheDocument()
expect(moduleHeader).toBeInTheDocument()
expect(moduleSwitch).toBeInTheDocument()
expect(moduleDesc).toBeInTheDocument()
})
const cookieConsentStatusApproved = {
[cookieProps.cookieName]: CookieConsentStatus.APPROVED
}
const testValue: ConsentProviderValue = {
cookies: useGdprMetadata().optionalCookies,
cookieConsentStatus: cookieConsentStatusApproved,
setConsentStatus: jest.fn(),
resetConsentStatus: jest.fn()
}
it('initializes switch correctly', () => {
// CookieConsentStatus not available
const { container } = render(
<ConsentContext.Provider value={testValue}>
<CookieModule {...cookieProps} />
</ConsentContext.Provider>
)
const switchInput = container.querySelector('input')
expect(switchInput).toHaveProperty('checked', true)
})
})