Add data-testid for glimpse

Change-Id: I266605a01b3bb2da9fd570f7325ce2f5a3e2134e
diff --git a/Changes b/Changes
index fe45132..f19b492 100644
--- a/Changes
+++ b/Changes
@@ -12,6 +12,7 @@
         - Escape commas and asterisks in query-by-match query creator (kupietz, hebasta)
         - Tests for configurable hint foundries added (hebasta)
         - Restrict allow-same-origin to plugins that actually ARE AND request it (Requires the export plugin >= 0.4.1)(kupietz, tests hebasta)
+        - Add data-testid to glimpse (diewald)
 
 0.64 2026-02-14
         - Improve 'Plugins' mounting (diewald)
diff --git a/dev/js/spec/panelSpec.js b/dev/js/spec/panelSpec.js
index ccdd4eb..cdde2f6 100644
--- a/dev/js/spec/panelSpec.js
+++ b/dev/js/spec/panelSpec.js
@@ -1,4 +1,4 @@
-define(['panel','view','panel/result','panel/pagination','util'], function (panelClass,viewClass,resultClass,paginationClass) {
+define(['panel','view','panel/result','panel/pagination','panel/query','util'], function (panelClass,viewClass,resultClass,paginationClass,queryPanelClass) {
 
   var controlStr = "";
 
@@ -254,4 +254,32 @@
     });
 
   });
+
+  describe('KorAP.Panel.Query', function () {
+
+    it('should set data-testid on glimpse button', function () {
+      // Set up required DOM elements
+      var colabel = document.createElement('label');
+      colabel.setAttribute('title', 'Glimpse description');
+      var glimpse = document.createElement('input');
+      glimpse.setAttribute('id', 'glimpse');
+      colabel.appendChild(glimpse);
+      document.body.appendChild(colabel);
+
+      var cutoff = document.createElement('input');
+      cutoff.setAttribute('type', 'checkbox');
+      cutoff.setAttribute('id', 'q-cutoff-field');
+      document.body.appendChild(cutoff);
+
+      var queryPanel = queryPanelClass.create();
+
+      var btn = queryPanel.element().querySelector('[data-testid="glimpse"]');
+      expect(btn).toBeTruthy();
+      expect(btn.getAttribute('data-testid')).toEqual('glimpse');
+
+      // Clean up
+      document.body.removeChild(colabel);
+      document.body.removeChild(cutoff);
+    });
+  });
 });
diff --git a/dev/js/src/panel/query.js b/dev/js/src/panel/query.js
index 08f51d3..fc95a9b 100644
--- a/dev/js/src/panel/query.js
+++ b/dev/js/src/panel/query.js
@@ -63,13 +63,15 @@
       s.associate(glimpseChange);
       s.set(cof.checked);
       
-      a.addToggle(
+      let b = a.addToggle(
         "Glimpse", {
           'cls':['glimpse'],
           'desc':colabel.getAttribute('title')
         },
         s
       );
+
+      b.setAttribute('data-testid', 'glimpse');
       
       // Don't show default glimpse
       colabel.style.display = "none";