UNPKG

5.8 kBJavaScriptView Raw
1Terra.describeViewports('Search Field', ['medium'], () => {
2 describe('Default', () => {
3 before(() => {
4 browser.url('/#/raw/tests/terra-search-field/search-field/default-search-field');
5 });
6
7 Terra.it.validatesElement('empty', { misMatchTolerance: 0.1 });
8
9 it('should enter a search term', () => {
10 browser.setValue('input', 'Lore');
11 });
12
13 Terra.it.validatesElement('with text', { misMatchTolerance: 0.1 });
14
15 it('should scroll text that is too long', () => {
16 browser.addValue('input', ' is a correctly spelled word');
17 });
18
19 Terra.it.matchesScreenshot('scrolled text', { misMatchTolerance: 0.1 });
20 });
21
22 describe('Block', () => {
23 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-block'));
24
25 Terra.it.validatesElement('empty');
26
27 it('should enter a search term', () => {
28 browser.setValue('input', 'Lorem');
29 });
30
31 Terra.it.matchesScreenshot('with text');
32 });
33
34 describe('Disabled', () => {
35 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-disabled'));
36
37 Terra.it.validatesElement();
38
39 it('should not accept keyboard input', () => {
40 expect(browser.setValue.bind(browser, 'input', 'Lorem')).to.throw(Error);
41 });
42
43 it('should not accept clicks', () => {
44 expect(browser.click.bind(browser, '[class*="button"]')).to.throw(Error);
45 });
46 });
47
48 describe('With Placeholder', () => {
49 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-with-placeholder'));
50
51 Terra.it.validatesElement('placeholder');
52
53 it('should enter a search term', () => {
54 browser.setValue('input', 'Lorem');
55 });
56
57 Terra.it.matchesScreenshot('with text');
58 });
59
60 describe('With Default Value', () => {
61 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-default-value'));
62
63 Terra.it.validatesElement('default value');
64
65 it('should enter a new search term', () => {
66 browser.click('input');
67 for (let i = 0; i < 7; i += 1) {
68 browser.keys('Backspace');
69 }
70
71 browser.addValue('input', 'Lorem');
72 });
73
74 Terra.it.matchesScreenshot('with overwritten text');
75 });
76
77 describe('With Value', () => {
78 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-with-value'));
79
80 Terra.it.validatesElement('default value');
81
82 it('should try to enter a new search term', () => {
83 browser.click('input');
84 for (let i = 0; i < 4; i += 1) {
85 browser.keys('Backspace');
86 }
87
88 browser.addValue('input', 'Lorem');
89 });
90
91 Terra.it.matchesScreenshot('unchanged text');
92 });
93
94 describe('Minimum Length', () => {
95 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/minimum-length-search-field'));
96
97 it('should enter a short search term', () => {
98 browser.setValue('input', 'Lore');
99 });
100
101 Terra.it.validatesElement('with too short text');
102
103 it('should not search with the button', () => {
104 browser.keys('Enter');
105 // Ensure button on hover styling is disabled
106 browser.click('#search-callback-text');
107 });
108
109 Terra.it.matchesScreenshot('with too short text after button press');
110
111 it('should enter a long enough search term', () => {
112 browser.setValue('input', 'Lore is spelled correctly');
113 });
114
115 Terra.it.matchesScreenshot('with long enough text');
116 });
117
118 describe('Callback', () => {
119 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/callback-search-field'));
120
121 Terra.it.validatesElement('empty');
122
123 it('should enter a long enough search term', () => {
124 browser.setValue('input', 'Lore is spelled correctly');
125 });
126
127 Terra.it.matchesScreenshot('with long enough text');
128
129 it('should enter a short search term', () => {
130 browser.setValue('input', 'Lo');
131 browser.waitForVisible('#search-callback-text');
132 });
133
134 Terra.it.matchesScreenshot('with too short text');
135 });
136
137 describe('On Change', () => {
138 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-on-change'));
139
140 it('should enter a letter', () => {
141 browser.setValue('input', 'L');
142 });
143
144 Terra.it.validatesElement('updated once');
145
146 it('should enter another letter', () => {
147 browser.addValue('input', 'o');
148 });
149
150 Terra.it.matchesScreenshot('updated twice');
151 });
152
153 describe('Search With Enter', () => {
154 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-enter'));
155
156 it('should search with enter', () => {
157 browser.click('input');
158 browser.keys('Enter');
159 });
160
161 Terra.it.validatesElement();
162 });
163
164 describe('Auto Search Disabled', () => {
165 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/auto-search-disabled-search-field'));
166
167 it('should enter a search term', () => {
168 browser.setValue('input', 'Lore');
169 });
170
171 Terra.it.validatesElement('text before search');
172
173 it('should search with the button', () => {
174 browser.keys('Enter');
175 });
176
177 Terra.it.matchesScreenshot('searched text');
178
179 it('should search using enter', () => {
180 browser.addValue('input', ' is spelled correctly');
181 browser.keys('Enter');
182 });
183
184 Terra.it.matchesScreenshot('extended search');
185 });
186
187 describe('Search Field in Focus', () => {
188 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-focus'));
189
190 Terra.it.matchesScreenshot('empty');
191
192 it('should click button to focus search field', () => {
193 browser.waitForVisible('#search-field-focus-button');
194 browser.click('#search-field-focus-button');
195 });
196
197 Terra.it.validatesElement('with focus');
198 });
199});