Test case added to Check correct principalType for users belonging to different user models
This commit is contained in:
parent
b4cfc249e2
commit
a42c2413b8
|
@ -87,8 +87,7 @@ function AccessContext(context) {
|
||||||
var token = this.accessToken || {};
|
var token = this.accessToken || {};
|
||||||
|
|
||||||
if (token.userId) {
|
if (token.userId) {
|
||||||
var userPrincipalType =
|
const userPrincipalType = token.principalType || Principal.USER;
|
||||||
(this.accessToken && this.accessToken.principalType) || Principal.USER;
|
|
||||||
this.addPrincipal(userPrincipalType, token.userId);
|
this.addPrincipal(userPrincipalType, token.userId);
|
||||||
}
|
}
|
||||||
if (token.appId != null) {
|
if (token.appId != null) {
|
||||||
|
|
|
@ -22,7 +22,7 @@ describe('Multiple users with custom principalType', function() {
|
||||||
|
|
||||||
var commonCredentials = {email: 'foo@bar.com', password: 'bar'};
|
var commonCredentials = {email: 'foo@bar.com', password: 'bar'};
|
||||||
var app, OneUser, AnotherUser, AccessToken, Role,
|
var app, OneUser, AnotherUser, AccessToken, Role,
|
||||||
userFromOneModel, userFromAnotherModel, userRole, userOneBaseContext;
|
userFromOneModel, userFromAnotherModel, accessTokenForUserFromOneModel, accessTokenForUserFromAnotherModel, userRole, userOneBaseContext;
|
||||||
|
|
||||||
beforeEach(function setupAppAndModels() {
|
beforeEach(function setupAppAndModels() {
|
||||||
// create a local app object that does not share state with other tests
|
// create a local app object that does not share state with other tests
|
||||||
|
@ -213,6 +213,50 @@ describe('Multiple users with custom principalType', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getUser()', function() {
|
describe('getUser()', function() {
|
||||||
|
it("Check correct principalType for users belonging to different user models", function() {
|
||||||
|
Promise.all([
|
||||||
|
OneUser.login(commonCredentials),
|
||||||
|
AnotherUser.login(commonCredentials)
|
||||||
|
]).spread(function(t1, t2) {
|
||||||
|
|
||||||
|
accessTokenForUserFromOneModel = t1;
|
||||||
|
accessTokenForUserFromAnotherModel = t2;
|
||||||
|
|
||||||
|
|
||||||
|
const accessContextForUserFromOneModel = new AccessContext({registry: OneUser.registry, accessToken: accessTokenForUserFromOneModel});
|
||||||
|
const accessContextForUserFromAnotherModel = new AccessContext({registry: AnotherUser.registry, accessToken: accessTokenForUserFromAnotherModel});
|
||||||
|
|
||||||
|
var user1 = accessContextForUserFromOneModel.getUser();
|
||||||
|
expect(user1).to.eql({
|
||||||
|
id: userFromOneModel.id,
|
||||||
|
principalType: OneUser.modelName,
|
||||||
|
});
|
||||||
|
|
||||||
|
var user2 = accessContextForUserFromAnotherModel.getUser();
|
||||||
|
expect(user2).to.eql({
|
||||||
|
id: userFromAnotherModel.id,
|
||||||
|
principalType: AnotherUser.modelName,
|
||||||
|
});
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
return Promise.try(function() {
|
||||||
|
addToAccessContext([
|
||||||
|
{type: Principal.ROLE},
|
||||||
|
{type: Principal.APP},
|
||||||
|
{type: Principal.SCOPE},
|
||||||
|
{type: OneUser.modelName, id: userFromOneModel.id},
|
||||||
|
]);
|
||||||
|
var user = accessContext.getUser();
|
||||||
|
expect(user).to.eql({
|
||||||
|
id: userFromOneModel.id,
|
||||||
|
principalType: OneUser.modelName,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
it('returns user although principals contain non USER principals',
|
it('returns user although principals contain non USER principals',
|
||||||
function() {
|
function() {
|
||||||
return Promise.try(function() {
|
return Promise.try(function() {
|
||||||
|
|
Loading…
Reference in New Issue