|
43 | 43 | actual = %w[berkeleyEduAffiliations berkeleyEduAlternatid berkeleyEduCSID berkeleyEduIsMemberOf berkeleyEduUCPathID departmentNumber |
44 | 44 | displayName employeeNumber givenName surname uid] |
45 | 45 | # rubocop:disable Layout/LineLength |
46 | | - msg = "Expected CalNet attribute(s) not found (case-sensitive): #{missing.join(', ')}. The actual CalNet attributes: #{actual.join(', ')}. The user is expected display name" |
| 46 | + msg = "Expected CalNet attribute(s) not found (case-sensitive): #{missing.join(', ')}. The actual CalNet attributes: #{actual.join(', ')}. The user is expected UID" |
47 | 47 | # rubocop:enable Layout/LineLength |
48 | 48 | expect { User.from_omniauth(auth) }.to raise_error(Error::CalnetError, msg) |
49 | 49 | end |
|
163 | 163 | end |
164 | 164 |
|
165 | 165 | describe :verify_calnet_attributes! do |
166 | | - it 'allows employee-affiliated users without berkeleyEduStuID' do |
| 166 | + it 'allows users without departmentNumber' do |
167 | 167 | auth_extra = { |
168 | 168 | 'berkeleyEduAffiliations' => ['EMPLOYEE-TYPE-ACADEMIC'], |
169 | 169 | 'berkeleyEduCSID' => 'cs123', |
170 | 170 | 'berkeleyEduIsMemberOf' => [], |
171 | 171 | 'berkeleyEduUCPathID' => 'ucpath456', |
172 | 172 | 'berkeleyEduAlternateID' => 'email@berkeley.edu', |
173 | | - 'departmentNumber' => 'dept1', |
174 | 173 | 'displayName' => 'Test Faculty', |
175 | 174 | 'employeeNumber' => 'emp789', |
176 | 175 | 'givenName' => 'Test', |
|
181 | 180 | expect { User.from_omniauth({ 'provider' => 'calnet', 'extra' => auth_extra }) }.not_to raise_error |
182 | 181 | end |
183 | 182 |
|
184 | | - it 'allows student-affiliated users without employeeNumber and berkeleyEduUCPathID' do |
| 183 | + it 'allows users without berkeleyEduStuID, employeeNumber, or berkeleyEduUCPathID' do |
185 | 184 | auth_extra = { |
186 | 185 | 'berkeleyEduAffiliations' => ['STUDENT-TYPE-REGISTERED'], |
187 | 186 | 'berkeleyEduCSID' => 'cs123', |
188 | 187 | 'berkeleyEduIsMemberOf' => [], |
189 | | - 'berkeleyEduStuID' => 'stu456', |
190 | 188 | 'berkeleyEduAlternateID' => 'email@berkeley.edu', |
191 | | - 'departmentNumber' => 'dept1', |
192 | 189 | 'displayName' => 'Test Student', |
193 | 190 | 'givenName' => 'Test', |
194 | 191 | 'surname' => 'Student', |
|
198 | 195 | expect { User.from_omniauth({ 'provider' => 'calnet', 'extra' => auth_extra }) }.not_to raise_error |
199 | 196 | end |
200 | 197 |
|
201 | | - it 'rejects student-affiliated users if berkeleyEduStuID is missing' do |
| 198 | + it 'allows users without berkeleyEduAffiliations' do |
202 | 199 | auth_extra = { |
203 | | - 'berkeleyEduAffiliations' => ['STUDENT-TYPE-REGISTERED'], |
204 | 200 | 'berkeleyEduCSID' => 'cs123', |
205 | 201 | 'berkeleyEduIsMemberOf' => [], |
206 | 202 | 'berkeleyEduAlternateID' => 'email@berkeley.edu', |
207 | | - 'departmentNumber' => 'dept1', |
208 | | - 'displayName' => 'Test Student', |
| 203 | + 'displayName' => 'Test User', |
209 | 204 | 'givenName' => 'Test', |
210 | | - 'surname' => 'Student', |
211 | | - 'uid' => 'student1' |
| 205 | + 'surname' => 'User', |
| 206 | + 'uid' => 'user1' |
212 | 207 | } |
213 | 208 |
|
214 | | - expect { User.from_omniauth({ 'provider' => 'calnet', 'extra' => auth_extra }) }.to raise_error(Error::CalnetError) |
| 209 | + expect { User.from_omniauth({ 'provider' => 'calnet', 'extra' => auth_extra }) }.not_to raise_error |
215 | 210 | end |
216 | 211 |
|
217 | | - it 'rejects employee-affiliated users if employeeNumber is missing' do |
| 212 | + it 'rejects users if email attribute is missing' do |
218 | 213 | auth_extra = { |
219 | 214 | 'berkeleyEduAffiliations' => ['EMPLOYEE-TYPE-STAFF'], |
220 | 215 | 'berkeleyEduCSID' => 'cs123', |
221 | 216 | 'berkeleyEduIsMemberOf' => [], |
222 | 217 | 'berkeleyEduUCPathID' => 'ucpath456', |
223 | | - 'berkeleyEduAlternateID' => 'email@berkeley.edu', |
224 | 218 | 'departmentNumber' => 'dept1', |
225 | 219 | 'displayName' => 'Test Staff', |
| 220 | + 'employeeNumber' => 'emp789', |
226 | 221 | 'givenName' => 'Test', |
227 | 222 | 'surname' => 'Staff', |
228 | 223 | 'uid' => 'staff1' |
|
0 commit comments