2016-12-04 4 views
1

Я пытаюсь написать тест шутя для следующей функции, которая устанавливает sessionStorage запись:Проверьте, функция возвращает sessionStorage с шуткой

/** 
* @desc create authenticated user session 
* @param {String} [email=''] 
* @param {Date} [expires=Date.now()] 
* @param {String} [hash=''] 
* @param {Array} users 
* @return {Session} 
*/ 
export const setSession = (
    email = '', 
    expires = Date.now(), 
    hash = '', 
    users: []) => { 
    const session = { 
    email, 
    expires, 
    hash, 
    users 
    }; 
    sessionStorage.setItem('MY_SESSION', JSON.stringify(session)); 
}; 

Я смущен, где начать то я шутя ошибку о том, что хранение сеанса не определен в простом тесте, как это:

it('takes in session parameters and returns sessionStorage',() => { 
    console.log(setSession('[email protected]', Date.now(), 'ha_sh', [])); 
}); 
+0

попробовать window.sessionStorage вместо –

ответ

1

Вы должны дразнить хранение сессии в тестовом модуле будет abble назвать.

Один из способов сделать это:

var myStorage = function() { 
    var sessionStorage = {}; 
    return { 
    getItem: function(key) { 
     return sessionStorage[key]; 
    }, 
    setItem: function(key, value) { 
     sessionStorage[key] = value.toString(); 
    }, 
    clear: function() { 
     sessionStorage = {}; 
    } 
    }; 
}; 
Object.defineProperty(window, 'sessionStorage', { value: myStorage }); 
+0

Вы также можете просто установить 'global.sessionStorage' вашему издеваться. –

 Смежные вопросы

  • Нет связанных вопросов^_^