Issue with user input received

code is here: https://github.com/bjcompto/Find-your-hat-game-/blob/main/main.js

const prompt = require('prompt-sync')({sigint: true});

const hat = '^';
const hole = 'O';
const fieldCharacter = '░';
const pathCharacter = '*';


class Field {
    constructor(gameField) {
        this.gameField = gameField; 
    }

    newGame() {
        console.log(this.gameField); 
    }
    
    printBoard() {
        setTimeout(() => {
            let twoArrToStr = this.gameField.map(arr => arr.join('')).join('');
            console.log(twoArrToStr); 
        }, 1500);
    }

    userDirections() {
        const userMove = prompt('Which direction would you like to move? ');
        //console.log(typeof userMove); 
        console.log(`You want to where again? n${userMove}  nLet me see if that's possible lol`); 
        this.userMovement(userMove);
        this.printBoard();
        this.holePresent();
    }

    holePresent() {
        for(let i = 0; i < this.gameField.length; i++) {
            for(let j = 0; j < this.gameField[i].length; j++) {
                if(this.gameField[i][j] === this.hole) {
                    console.log('There is a hole here.')
                    this.newGame();
                    break; 
                }
            }
        }
    }

   userMovement(str) {
        if(this.userMove === 'right') {
            //move right 1 space; 
        } else if(this.userMove === 'left') {
            //move left 1 space;
        } else if (this.userMove === 'up') {
            //move up 1 space;
        } else if(this.userMove === 'down') {
            //move down 1 space; 
        } else {
            console.log('invalid entry.  You can move right, left, up or down.  Enter valid entry')
            this.userDirections(); 
        }
    }

}



const gameOne = new Field([
    [pathCharacter, fieldCharacter, fieldCharacter],
    [fieldCharacter, hole, fieldCharacter],
    [fieldCharacter, hat, fieldCharacter]
])


gameOne.userDirections(); 

for convenience posted link for code on my github and actual code. I’m new so there will be noob stuff in my code. I’m having an issue with my userMovement method within the userDirection method. userMovement reads user input and performs an action based on the input. I thought I wrote it to only accept right, up, down, and left. however, it just rejects everything and gives my error message even for valid entries of right, left, up and down. Any guidance is appreciated

after running node in terminal(macOS) expected output of:

`You want to where again? n${userMove}  nLet me see if that's possible lol` 

followed by the following methods:

this.userMovement(userMove); 
this.printBoard();
this.holePresent(); 

actual output:

whether entry is valid. for ex: right, left, up or down.
Or invalid. for ex. around, under etc

I receive my error message:

console.log('invalid entry.  You can move right, left, up or down.  Enter valid entry')
            this.userDirections(); 

and then I just end up stuck in the program. side note how do I force stop the program in node. Tried process.exit() but it is just interpreted as an invalid move and the program continues