|
37 | 37 | it 'returns no role' do |
38 | 38 | user = WorkOS:: DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"[email protected]","emails":[{"primary":true,"value":"[email protected]"}, {"primary":false,"value":"[email protected]"}],"first_name":"Bob","last_name":"Gingerich","job_title":"Developer Success Engineer","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[],"created_at":"2022-05-13T17:45:31.732Z", "updated_at":"2022-07-13T17:45:42.618Z"}') |
39 | 39 | expect(user.role).to eq(nil) |
| 40 | + expect(user.roles).to eq(nil) |
40 | 41 | end |
41 | 42 | end |
42 | 43 |
|
43 | | - context 'with a role' do |
44 | | - it 'returns the role slug' do |
| 44 | + context 'with a single role' do |
| 45 | + it 'returns the highest priority role slug and roles array' do |
45 | 46 | user = WorkOS:: DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"[email protected]","emails":[{"primary":true,"value":"[email protected]"}, {"primary":false,"value":"[email protected]"}],"first_name":"Bob","last_name":"Gingerich","job_title":"Developer Success Engineer","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[],"role":{"slug":"member"},"roles":[{"slug":"member"}],"created_at":"2022-05-13T17:45:31.732Z", "updated_at":"2022-07-13T17:45:42.618Z"}') |
46 | 47 | expect(user.role).to eq({ slug: 'member' }) |
| 48 | + expect(user.roles).to eq([{ slug: 'member' }]) |
| 49 | + end |
| 50 | + end |
| 51 | + |
| 52 | + context 'with multiple roles' do |
| 53 | + it 'returns the highest priority role slug and roles array' do |
| 54 | + user = WorkOS:: DirectoryUser.new('{"object":"directory_user","id":"directory_user_01FAZYNPC8M0HRYTKFP2GNX852","directory_id":"directory_01FAZYMST676QMTFN1DDJZZX87","idp_id":"6092c280a3f1e19ef6d8cef8","username":"[email protected]","emails":[{"primary":true,"value":"[email protected]"}, {"primary":false,"value":"[email protected]"}],"first_name":"Bob","last_name":"Gingerich","job_title":"Developer Success Engineer","state":"active","raw_attributes":{},"custom_attributes":{},"groups":[],"role":{"slug":"admin"},"roles":[{"slug":"member"}, {"slug":"admin"}],"created_at":"2022-05-13T17:45:31.732Z", "updated_at":"2022-07-13T17:45:42.618Z"}') |
| 55 | + expect(user.role).to eq({ slug: 'admin' }) |
| 56 | + expect(user.roles).to eq([{ slug: 'member' }, { slug: 'admin' }]) |
47 | 57 | end |
48 | 58 | end |
49 | 59 | end |
|
0 commit comments