← Усі задачіNode.js · Junior
Розбір заголовка Cookie
Браузер надсилає cookies одним заголовком: Cookie: session=abc123; theme=dark. Напишіть parseCookies(header), що повертає об'єкт { session: "abc123", theme: "dark" }.
Пробіли навколо назв і значень прибираються, значення декодуються через decodeURIComponent (якщо значення зіпсоване - лишається як є), лапки навколо значення знімаються. Частини без = пропускаються, а якщо cookie повторюється, перемагає перша. Порожній чи відсутній заголовок дає {}.
Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (6)
expect(parseCookies('session=abc123; theme=dark')).toEqual({ session: 'abc123', theme: 'dark' });
expect(parseCookies('name=John%20Doe; city=Kyiv')).toEqual({ name: 'John Doe', city: 'Kyiv' });
expect(parseCookies(undefined)).toEqual({}); expect(parseCookies('')).toEqual({});
expect(parseCookies('a=1; b = 2 ;broken; c=')).toEqual({ a: '1', b: '2', c: '' });
expect(parseCookies('id=1; id=2')).toEqual({ id: '1' });
expect(parseCookies('token="x y"; bad=%E0%A4%A')).toEqual({ token: 'x y', bad: '%E0%A4%A' });