src/modules/identity-user.test.js
import IdentityUser from './identity-user.js';
import IdentityConfig from './identity-config.js';
describe('IdentityUser', () => {
it('constructor must set all user provided user properties', () => {
const user = new IdentityUser(getTestConfig(['id', 'country']), {
_id: 'id',
country: 'country',
});
expect(user.id).toBe('id');
expect(user.country).toBe('country');
});
it('constructor must remap user properties that require renaming', () => {
const user = new IdentityUser(getTestConfig(['firstName']), {
givenName: 'name',
});
expect(user.firstName).toBe('name');
});
it('constructor should ignore properties that are not explicitly defined', () => {
const user = new IdentityUser(getTestConfig([]), {
random: 'random',
});
expect(user.random).toBeFalsy();
});
});
/**
* Returns a default IdentityConfig instance for unit testing purposes.
*
* @param {string[]} keys Array of user property keys to intialize config.properties with
* @return {IdentityConfig} Test instance of IdentityConfig with default values.
*/
function getTestConfig(keys) {
return new IdentityConfig({
properties: keys.reduce((properties, key) => {
properties[key] = {};
return properties;
}, {}),
});
}