diff --git a/dev/js/spec/tourSpec.js b/dev/js/spec/tourSpec.js
index 5dac709..e7ec308 100644
--- a/dev/js/spec/tourSpec.js
+++ b/dev/js/spec/tourSpec.js
@@ -456,7 +456,9 @@
      let searchTour = tourClass.gTstartSearch(intrkorap);
      searchTour.start();
      let totalSteps = searchTour.stepCount;
-     expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(loc.TOUR_sear1);
+     let welc = document.createElement("DIV");
+     welc.innerHTML = loc.TOUR_welc;
+     expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(welc.textContent);
      expect(document.querySelector(".introjs-skipbutton").textContent).toEqual(loc.TOUR_lskip);
      expect(document.querySelector(".introjs-prevbutton").textContent).toEqual(loc.TOUR_lprev);
      expect(document.querySelector(".introjs-nextbutton").textContent).toEqual(loc.TOUR_lnext);
@@ -467,14 +469,14 @@
        expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(searchTour.testIntros[i-1]);
 
        switch(i){
-       case 4:
+       case 5:
        expect(intrkorap.querySelector('#hint')).not.toBeNull(); 
        expect(KorAP.Hint).not.toBeNull();
        expect(KorAP.Hint.active().dontHide).toBe(true); 
        expect(KorAP.Hint._active).not.toBeNull();
        break;
        
-       case 5:
+       case 6:
        expect(KorAP.Hint._active).toBeNull();
        break;
                      
@@ -512,7 +514,7 @@
      tourAbort.start(); 
      expect(KorAP.Hint._active).toBeNull();
      expect(document.querySelector(".introjs-skipbutton")).not.toBeNull();
-     tourAbort.goToStepNumber(4);
+     tourAbort.goToStepNumber(5);
      expect(KorAP.Hint._active).not.toBeNull()
      expect(KorAP.Hint.active().dontHide).toBe(true);
      tourAbort.exit();
