diff options
Diffstat (limited to 'src/lib/components/error_block')
| -rw-r--r-- | src/lib/components/error_block/error_block.svelte | 40 | ||||
| -rw-r--r-- | src/lib/components/error_block/error_block.test.ts | 32 |
2 files changed, 72 insertions, 0 deletions
diff --git a/src/lib/components/error_block/error_block.svelte b/src/lib/components/error_block/error_block.svelte new file mode 100644 index 0000000..d25f507 --- /dev/null +++ b/src/lib/components/error_block/error_block.svelte @@ -0,0 +1,40 @@ +<script lang="ts"> + import { _ } from 'svelte-i18n'; + export let message = null; + + import { blink } from '$lib/animations/blink'; +</script> + +<div transition:blink> + <h2>{$_('error.generic.title')}</h2> + <p>{message || $_('error.generic.message')}</p> +</div> + +<style> + div { + background: repeating-linear-gradient(-45deg, red, red 5px, black 5px, black 10px); + border: 5px solid red; + color: yellow; + font-family: 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', '游ゴシック', '游ゴシック体', + YuGothic, 'Yu Gothic', 'メイリオ', Meiryo, 'MS ゴシック', 'MS Gothic', HiraKakuProN-W3, + 'TakaoExゴシック', TakaoExGothic, 'MotoyaLCedar', 'Droid Sans Japanese', sans-serif; + margin: 0 10px 0 0; + text-align: center; + overflow: hidden; + } + + h2, + p { + background-color: black; + font-size: 1em; + } + + h2 { + text-transform: uppercase; + margin: 100px 5px 10px; + } + + p { + margin: 10px 5px 100px; + } +</style> diff --git a/src/lib/components/error_block/error_block.test.ts b/src/lib/components/error_block/error_block.test.ts new file mode 100644 index 0000000..d2ac458 --- /dev/null +++ b/src/lib/components/error_block/error_block.test.ts @@ -0,0 +1,32 @@ +/** + * @jest-environment jsdom + */ + +import '@testing-library/jest-dom/extend-expect'; + +import { render } from '@testing-library/svelte'; +import '$lib/i18n'; + +import ErrorBlock from './error_block.svelte'; + +describe('Error Block component', () => { + + test('Should display error message sent', () => { + + const results = render(ErrorBlock, { props: { + message: 'An error has, sadly, destroyed everything.' + } }); + + expect(results.getByText('An error has, sadly, destroyed everything.')) + .toBeVisible(); + }); + + test('Should display default error message', () => { + + const results = render(ErrorBlock); + + expect(results.getByText('Unknown error has occurred. Panic!')) + .toBeVisible(); + }); +}); + |