mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
fix: Update OIDC provider dependency to v7
The biggest resulting change is that the consent page always appears after logging in. Some minor fixes to be closer to the spec are included together with some minor structural refactors.
This commit is contained in:
@@ -89,7 +89,7 @@ export class IdentityTestState {
|
||||
|
||||
// Need to catch the redirect so we can copy the cookies
|
||||
let res = await this.fetchIdp(nextUrl);
|
||||
expect(res.status).toBe(302);
|
||||
expect(res.status).toBe(303);
|
||||
nextUrl = res.headers.get('location')!;
|
||||
|
||||
// Handle redirect
|
||||
@@ -109,22 +109,26 @@ export class IdentityTestState {
|
||||
* Logs in by sending the corresponding email and password to the given form action.
|
||||
* The URL should be extracted from the login page.
|
||||
*/
|
||||
public async login(url: string, email: string, password: string): Promise<void> {
|
||||
public async login(url: string, email: string, password: string): Promise<string> {
|
||||
const formData = stringify({ email, password });
|
||||
const res = await this.fetchIdp(url, 'POST', formData, APPLICATION_X_WWW_FORM_URLENCODED);
|
||||
let res = await this.fetchIdp(url, 'POST', formData, APPLICATION_X_WWW_FORM_URLENCODED);
|
||||
expect(res.status).toBe(200);
|
||||
const json = await res.json();
|
||||
const nextUrl = json.location;
|
||||
|
||||
return this.handleLoginRedirect(nextUrl);
|
||||
res = await this.fetchIdp(json.location);
|
||||
expect(res.status).toBe(303);
|
||||
return res.headers.get('location')!;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the redirect that happens after logging in.
|
||||
* Handles the consent screen at the given URL and the followup redirect back to the client.
|
||||
*/
|
||||
public async handleLoginRedirect(url: string): Promise<void> {
|
||||
const res = await this.fetchIdp(url);
|
||||
expect(res.status).toBe(302);
|
||||
public async consent(url: string): Promise<void> {
|
||||
let res = await this.fetchIdp(url, 'POST', '', APPLICATION_X_WWW_FORM_URLENCODED);
|
||||
expect(res.status).toBe(200);
|
||||
const json = await res.json();
|
||||
|
||||
res = await this.fetchIdp(json.location);
|
||||
expect(res.status).toBe(303);
|
||||
const mockUrl = res.headers.get('location')!;
|
||||
expect(mockUrl.startsWith(this.redirectUrl)).toBeTruthy();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user