UNPKG

5.74 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 short search term', () => {
124 browser.setValue('input', 'Lo');
125 });
126
127 Terra.it.matchesScreenshot('with too short text');
128
129 it('should enter a long enough search term', () => {
130 browser.setValue('input', 'Lore is spelled correctly');
131 });
132
133 Terra.it.matchesScreenshot('with long enough text');
134 });
135
136 describe('On Change', () => {
137 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-on-change'));
138
139 it('should enter a letter', () => {
140 browser.setValue('input', 'L');
141 });
142
143 Terra.it.validatesElement('updated once');
144
145 it('should enter another letter', () => {
146 browser.addValue('input', 'o');
147 });
148
149 Terra.it.matchesScreenshot('updated twice');
150 });
151
152 describe('Search With Enter', () => {
153 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-enter'));
154
155 it('should search with enter', () => {
156 browser.click('input');
157 browser.keys('Enter');
158 });
159
160 Terra.it.validatesElement();
161 });
162
163 describe('Auto Search Disabled', () => {
164 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/auto-search-disabled-search-field'));
165
166 it('should enter a search term', () => {
167 browser.setValue('input', 'Lore');
168 });
169
170 Terra.it.validatesElement('text before search');
171
172 it('should search with the button', () => {
173 browser.keys('Enter');
174 });
175
176 Terra.it.matchesScreenshot('searched text');
177
178 it('should search using enter', () => {
179 browser.addValue('input', ' is spelled correctly');
180 browser.keys('Enter');
181 });
182
183 Terra.it.matchesScreenshot('extended search');
184 });
185
186 describe('Search Field in Focus', () => {
187 before(() => browser.url('/#/raw/tests/terra-search-field/search-field/search-field-focus'));
188
189 Terra.it.matchesScreenshot('empty');
190
191 it('should click button to focus search field', () => {
192 browser.waitForVisible('#search-field-focus-button');
193 browser.click('#search-field-focus-button');
194 });
195
196 Terra.it.validatesElement('with focus');
197 });
198});