Browse Source

test: add a `<datalist>` spec for time type (#36997)

spec: add a datalist spec for time type

Co-authored-by: Shelley Vohr <[email protected]>

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <[email protected]>
trop[bot] 2 years ago
parent
commit
153abeb351

+ 21 - 2
spec/autofill-spec.ts

@@ -9,10 +9,11 @@ const fixturesPath = path.resolve(__dirname, 'fixtures');
 describe('autofill', () => {
   afterEach(closeAllWindows);
 
-  it('can be selected via keyboard', async () => {
+  it('can be selected via keyboard for a <datalist> with text type', async () => {
     const w = new BrowserWindow({ show: true });
-    await w.loadFile(path.join(fixturesPath, 'pages', 'datalist.html'));
+    await w.loadFile(path.join(fixturesPath, 'pages', 'datalist-text.html'));
     w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
+
     const inputText = 'clap';
     for (const keyCode of inputText) {
       w.webContents.sendInputEvent({ type: 'char', keyCode });
@@ -25,4 +26,22 @@ describe('autofill', () => {
     const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
     expect(value).to.equal('Eric Clapton');
   });
+
+  it('can be selected via keyboard for a <datalist> with time type', async () => {
+    const w = new BrowserWindow({ show: true });
+    await w.loadFile(path.join(fixturesPath, 'pages', 'datalist-time.html'));
+
+    const inputText = '11P'; // 1:01 PM
+    for (const keyCode of inputText) {
+      w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
+      w.webContents.sendInputEvent({ type: 'keyDown', keyCode });
+      w.webContents.sendInputEvent({ type: 'char', keyCode });
+      await delay(100);
+    }
+
+    w.webContents.sendInputEvent({ type: 'keyDown', keyCode: 'Tab' });
+
+    const value = await w.webContents.executeJavaScript("document.querySelector('input').value");
+    expect(value).to.equal('13:01');
+  });
 });

+ 15 - 0
spec/fixtures/pages/datalist-text.html

@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+
+<body>
+  <input type="text" list="guitarists" />
+  <datalist id="guitarists">
+    <select>
+      <option value="John Mayer"></option>
+      <option value="Eric Clapton"></option>
+      <option value="Django Reinhardt"></option>
+    </select>
+  </datalist>
+</body>
+
+</html>

+ 13 - 0
spec/fixtures/pages/datalist-time.html

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+
+<body>
+  <input type="time" list="hours" />
+  <datalist id="popularHours">
+    <option value="12:00"></option>
+    <option value="13:00"></option>
+    <option value="14:00"></option>
+  </datalist>
+</body>
+
+</html>

+ 0 - 13
spec/fixtures/pages/datalist.html

@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <body>
-    <input type="text" list="guitarists" />
-    <datalist id="guitarists">
-      <select>
-        <option value="John Mayer"></option>
-        <option value="Eric Clapton"></option>
-        <option value="Django Reinhardt"></option>
-      </select>
-    </datalist>
-  </body>
-</html>