|
6 | 6 | */
|
7 | 7 |
|
8 | 8 | import React from 'react';
|
9 |
| -import { render, renderRtl } from 'garden-test-utils'; |
10 |
| -import { PALETTE, getColorV8 } from '@zendeskgarden/react-theming'; |
| 9 | +import { render, renderDark, renderRtl } from 'garden-test-utils'; |
| 10 | +import { PALETTE } from '@zendeskgarden/react-theming'; |
11 | 11 | import { StyledTag } from './StyledTag';
|
12 | 12 |
|
13 | 13 | describe('StyledTag', () => {
|
@@ -82,32 +82,93 @@ describe('StyledTag', () => {
|
82 | 82 | });
|
83 | 83 |
|
84 | 84 | describe('hue', () => {
|
85 |
| - it('renders using a default neutral hue', () => { |
86 |
| - const { container } = render(<StyledTag />); |
87 |
| - const color = getColorV8('neutralHue', 200); |
| 85 | + it.each([['light'], ['dark']])('renders using a default hue for %s mode', mode => { |
| 86 | + const renderFn = mode === 'light' ? render : renderDark; |
| 87 | + const { container } = renderFn(<StyledTag />); |
| 88 | + const backgroundColor = mode === 'dark' ? PALETTE.grey[800] : PALETTE.grey[200]; |
| 89 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[300] : PALETTE.grey[900]; |
| 90 | + |
| 91 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 92 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 93 | + }); |
| 94 | + |
| 95 | + it.each([['light'], ['dark']])('renders using a "grey" hue in %s mode', mode => { |
| 96 | + const renderFn = mode === 'light' ? render : renderDark; |
| 97 | + const { container } = renderFn(<StyledTag hue="grey" />); |
| 98 | + const backgroundColor = mode === 'dark' ? PALETTE.grey[300] : PALETTE.grey[700]; |
| 99 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.white; |
| 100 | + |
| 101 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 102 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 103 | + }); |
| 104 | + |
| 105 | + it.each([['light'], ['dark']])('renders using a "blue" hue in %s mode', mode => { |
| 106 | + const renderFn = mode === 'light' ? render : renderDark; |
| 107 | + const { container } = renderFn(<StyledTag hue="blue" />); |
| 108 | + const backgroundColor = mode === 'dark' ? PALETTE.blue[600] : PALETTE.blue[700]; |
| 109 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.white; |
| 110 | + |
| 111 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 112 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 113 | + }); |
| 114 | + |
| 115 | + it.each([['light'], ['dark']])('renders using a "red" hue in %s mode', mode => { |
| 116 | + const renderFn = mode === 'light' ? render : renderDark; |
| 117 | + const { container } = renderFn(<StyledTag hue="red" />); |
| 118 | + const backgroundColor = mode === 'dark' ? PALETTE.red[600] : PALETTE.red[700]; |
| 119 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.white; |
| 120 | + |
| 121 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 122 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 123 | + }); |
| 124 | + |
| 125 | + it.each([['light'], ['dark']])('renders using a "green" hue in %s mode', mode => { |
| 126 | + const renderFn = mode === 'light' ? render : renderDark; |
| 127 | + const { container } = renderFn(<StyledTag hue="green" />); |
| 128 | + const backgroundColor = mode === 'dark' ? PALETTE.green[600] : PALETTE.green[700]; |
| 129 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.white; |
| 130 | + |
| 131 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 132 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 133 | + }); |
| 134 | + |
| 135 | + it.each([['light'], ['dark']])('renders using a "yellow" hue in %s mode', mode => { |
| 136 | + const renderFn = mode === 'light' ? render : renderDark; |
| 137 | + const { container } = renderFn(<StyledTag hue="yellow" />); |
| 138 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.yellow[900]; |
| 139 | + |
| 140 | + expect(container.firstChild).toHaveStyleRule('background-color', PALETTE.yellow[400]); |
| 141 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
| 142 | + }); |
| 143 | + |
| 144 | + it.each([['light'], ['dark']])('renders using a "kale" hue in %s mode', mode => { |
| 145 | + const renderFn = mode === 'light' ? render : renderDark; |
| 146 | + const { container } = renderFn(<StyledTag hue="kale" />); |
| 147 | + const backgroundColor = mode === 'dark' ? PALETTE.kale[500] : PALETTE.kale[800]; |
| 148 | + const foregroundColor = mode === 'dark' ? PALETTE.grey[1100] : PALETTE.white; |
88 | 149 |
|
89 |
| - expect(container.firstChild).toHaveStyleRule('background-color', color); |
| 150 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
| 151 | + expect(container.firstChild).toHaveStyleRule('color', foregroundColor); |
90 | 152 | });
|
91 | 153 |
|
92 |
| - it('renders using a custom hue', () => { |
93 |
| - const { container } = render(<StyledTag hue="azure" />); |
94 |
| - const color = getColorV8('azure', 600); |
| 154 | + it.each([['light'], ['dark']])('renders using a custom hue for %s mode', mode => { |
| 155 | + const renderFn = mode === 'light' ? render : renderDark; |
| 156 | + const { container } = renderFn(<StyledTag hue="azure" />); |
| 157 | + const backgroundColor = mode === 'dark' ? PALETTE.azure[500] : PALETTE.azure[700]; |
95 | 158 |
|
96 |
| - expect(container.firstChild).toHaveStyleRule('background-color', color); |
| 159 | + expect(container.firstChild).toHaveStyleRule('background-color', backgroundColor); |
97 | 160 | });
|
98 | 161 |
|
99 | 162 | it('renders a dark foreground on a light background', () => {
|
100 | 163 | const { container } = render(<StyledTag hue="white" />);
|
101 |
| - const color = PALETTE.grey[800]; |
102 | 164 |
|
103 |
| - expect(container.firstChild).toHaveStyleRule('color', color); |
| 165 | + expect(container.firstChild).toHaveStyleRule('color', PALETTE.grey[1100]); |
104 | 166 | });
|
105 | 167 |
|
106 | 168 | it('renders a light foreground on a dark background', () => {
|
107 | 169 | const { container } = render(<StyledTag hue="black" />);
|
108 |
| - const color = PALETTE.white; |
109 | 170 |
|
110 |
| - expect(container.firstChild).toHaveStyleRule('color', color); |
| 171 | + expect(container.firstChild).toHaveStyleRule('color', PALETTE.white); |
111 | 172 | });
|
112 | 173 | });
|
113 | 174 | });
|
0 commit comments