Rock, Paper, Scissors x99: function setPlayerMoves "AssertionError: expected undefined to equal 'rock'"

I’ve tried to fix this issue for a few hours now but cannot find a way to implement it. The testing suite says that it fails to set both player’s moves with valid inputs, elaborating that “AssertionError: expected undefined to equal ‘rock’”.

I am pretty sure it is caused by the global variable not being returned after I change it, so it defaults to undefined, but I cannot find a way to implement a way to return it. I’ve tried multiple forms of arrays to return multiple variables. I have deleted the return portion I had because my other attempts weren’t working. At this point, I don’t even know if what I think is the problem really is the problem, so I’m looking for an outside and more experienced perspective on how to fix this.

let playerOneMoveOneValue = undefined;
let playerOneMoveTwoValue = undefined;
let playerOneMoveThreeValue = undefined;
let playerOneMoveOneType = undefined;
let playerOneMoveTwoType = undefined;
let playerOneMoveThreeType = undefined;

let playerTwoMoveOneValue = undefined;
let playerTwoMoveTwoValue = undefined;
let playerTwoMoveThreeValue = undefined;
let playerTwoMoveOneType = undefined;
let playerTwoMoveTwoType = undefined;
let playerTwoMoveThreeType = undefined;

function setPlayerMoves(player, moveOneType, moveOneValue, moveTwoType, moveTwoValue, moveThreeType, moveThreeValue) {
    if ((player === 'player one' || 'player two') && (['rock', 'paper', 'scissors'].includes(moveOneType)) && (['rock', 'paper', 'scissors'].includes(moveTwoType)) && (['rock', 'paper', 'scissors'].includes(moveThreeType)) && (moveOneValue <= 99 && (moveTwoValue + moveThreeValue) - 99) && (moveTwoValue <= 99 && (moveOneValue + moveThreeValue) - 99) && (moveThreeValue <= 99 && (moveTwoValue + moveOneValue) - 99)) {
        if (player === 'player one') {
            playerOneMoveOneValue = moveOneValue;
            playerOneMoveTwoValue = moveTwoValue;
            playerOneMoveThreeValue = moveThreeValue;
            playerOneMoveOneType = moveOneType;
            playerOneMoveTwoType = moveTwoType;
            playerOneMoveThreeType = moveThreeType;
            
        } else if (player === 'player two') {
            playerTwoMoveOneValue = moveOneValue;
            playerTwoMoveTwoValue = moveTwoValue;
            playerTwoMoveThreeValue = moveThreeValue;
            playerTwoMoveOneType = moveOneType;
            playerTwoMoveTwoType = moveTwoType;
            playerTwoMoveThreeType = moveThreeType;
            
        } else {
            return 'invalid'
        }
    } else {
        return 'invalid'
    }

};

1 Like