import { act } from 'react';
import { Pressable, Text } from 'react-native';
import { Icon } from '@fluentui-react-native/icon';
import * as renderer from 'react-test-renderer';
import { Button } from './Button';
describe('Button component tests', () => {
it('Button default', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button disabled', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button primary', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button subtle', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button circular', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button square', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button small', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button large', () => {
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create();
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button customized', () => {
const CustomButton = Button.customize({ backgroundColor: 'pink' });
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create(Custom Button);
});
expect(component!.toJSON()).toMatchSnapshot();
});
it('Button composed', () => {
const ComposedButton = Button.compose({
slots: {
root: Pressable,
icon: Icon,
content: Text,
},
});
let component: renderer.ReactTestRenderer;
act(() => {
component = renderer.create(Composed Button with RNText);
});
expect(component!.toJSON()).toMatchSnapshot();
});
});