From 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 Mon Sep 17 00:00:00 2001
From: Renaud Chaput
- :foobar:
-
- :foobar:
-
+ :foobar:
+
+ :foobar:
+
-
-
+
+
-
-
+
+
children
; - const component = renderer.create(); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders the props.text instead of children', () => { - const text = 'foo'; - const children =children
; - const component = renderer.create(); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('renders class="button--block" if props.block given', () => { - const component = renderer.create(); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); - - it('adds class "button-secondary" if props.secondary given', () => { - const component = renderer.create(); - const tree = component.toJSON(); - - expect(tree).toMatchSnapshot(); - }); -}); diff --git a/app/javascript/mastodon/components/__tests__/button-test.jsx b/app/javascript/mastodon/components/__tests__/button-test.jsx new file mode 100644 index 000000000..f5a649f70 --- /dev/null +++ b/app/javascript/mastodon/components/__tests__/button-test.jsx @@ -0,0 +1,75 @@ +import { render, fireEvent, screen } from '@testing-library/react'; +import React from 'react'; +import renderer from 'react-test-renderer'; +import Button from '../button'; + +describe('', () => { + it('renders a button element', () => { + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('renders the given text', () => { + const text = 'foo'; + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('handles click events using the given handler', () => { + const handler = jest.fn(); + render(); + fireEvent.click(screen.getByText('button')); + + expect(handler.mock.calls.length).toEqual(1); + }); + + it('does not handle click events if props.disabled given', () => { + const handler = jest.fn(); + render(); + fireEvent.click(screen.getByText('button')); + + expect(handler.mock.calls.length).toEqual(0); + }); + + it('renders a disabled attribute if props.disabled given', () => { + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('renders the children', () => { + const children =children
; + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('renders the props.text instead of children', () => { + const text = 'foo'; + const children =children
; + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('renders class="button--block" if props.block given', () => { + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); + + it('adds class "button-secondary" if props.secondary given', () => { + const component = renderer.create(); + const tree = component.toJSON(); + + expect(tree).toMatchSnapshot(); + }); +}); diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.js deleted file mode 100644 index 0d040c4cd..000000000 --- a/app/javascript/mastodon/components/__tests__/display_name-test.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react'; -import renderer from 'react-test-renderer'; -import { fromJS } from 'immutable'; -import DisplayName from '../display_name'; - -describe('Foo
', - }); - const component = renderer.create(Foo
', + }); + const component = renderer.create(
- |
-
-
- |
-
- - {item.human_key} - | - -
- {typeof item.human_value !== 'undefined' ? item.human_value : |
-
+ |
+
+
+ |
+
+ + {item.human_key} + | + +
+ {typeof item.human_value !== 'undefined' ? item.human_value : |
+
-
-
- |
-
-
-
-
- |
-
- {data[0].data.slice(1).map((retention, i) => (
-
-
- {i + 1}
-
- |
- ))}
-
---|---|---|
-
-
- |
-
-
-
-
- |
-
- {data[0].data.slice(1).map((retention, i) => {
- const average = data.reduce((sum, cohort, k) => cohort.data[i + 1] ? sum + (cohort.data[i + 1].rate - sum)/(k + 1) : sum, 0);
-
- return (
-
-
-
- |
- );
- })}
-
-
- {dateForCohort(cohort)}
-
- |
-
-
-
-
- |
-
- {cohort.data.slice(1).map(retention => (
-
-
-
- |
- ))}
-
+
+
+ |
+
+
+
+
+ |
+
+ {data[0].data.slice(1).map((retention, i) => (
+
+
+ {i + 1}
+
+ |
+ ))}
+
---|---|---|
+
+
+ |
+
+
+
+
+ |
+
+ {data[0].data.slice(1).map((retention, i) => {
+ const average = data.reduce((sum, cohort, k) => cohort.data[i + 1] ? sum + (cohort.data[i + 1].rate - sum)/(k + 1) : sum, 0);
+
+ return (
+
+
+
+ |
+ );
+ })}
+
+
+ {dateForCohort(cohort)}
+
+ |
+
+
+
+
+ |
+
+ {cohort.data.slice(1).map(retention => (
+
+
+
+ |
+ ))}
+
- { likelyBrowserAddonIssue ? (
-
- { likelyBrowserAddonIssue ? (
-
+ { likelyBrowserAddonIssue ? (
+
+ { likelyBrowserAddonIssue ? (
+
- - {' '} - -
- - {mentionsPlaceholder} - - - - {!hidden && poll} - {!hidden && translateButton} -+ + {' '} + +
+ + {mentionsPlaceholder} + + + + {!hidden && poll} + {!hidden && translateButton} +{(block.get('comment') || '').length > 0 ? block.get('comment') :
{(block.get('comment') || '').length > 0 ? block.get('comment') :
-
+
-
-
-
-
+
+
+
+
r | -|
m | -|
p | -|
f | -|
b | -|
enter, o | -|
e | -|
x | -- |
h | -|
up, k | -|
down, j | -|
1-9 | -|
n | -|
alt+n | -|
alt+x | -|
backspace | -|
s | -|
esc | -|
g+h | -|
g+n | -|
g+l | -|
g+t | -|
g+d | -|
g+s | -|
g+f | -|
g+p | -|
g+u | -|
g+b | -|
g+m | -|
g+r | -|
? | -
r | +|
m | +|
p | +|
f | +|
b | +|
enter, o | +|
e | +|
x | ++ |
h | +|
up, k | +|
down, j | +|
1-9 | +|
n | +|
alt+n | +|
alt+x | +|
backspace | +|
s | +|
esc | +|
g+h | +|
g+n | +|
g+l | +|
g+t | +|
g+d | +|
g+s | +|
g+f | +|
g+p | +|
g+u | +|
g+b | +|
g+m | +|
g+r | +|
? | +
{submitted ?
{submitted ?
{trim(card.get('description') || '', maxDescription)}
} - {provider} -{trim(card.get('description') || '', maxDescription)}
} + {provider} +
-
+
{body}
- -{body}
+ +
- {movedToAcct ? (
-
+ {movedToAcct ? (
+
-
-
+
+
- {domain}:
- {' '}
-
- Mastodon:
- {' '}
-
+ {domain}:
+ {' '}
+
+ Mastodon:
+ {' '}
+
-
-
+
+