import { expect, it } from "@effect/vitest"; import { compactGoogleOAuthScopes, filterGoogleUserConsentOAuthScopes } from "./oauth-scopes"; it("filters Google scopes that cannot be shown on a user OAuth consent screen", () => { expect( filterGoogleUserConsentOAuthScopes([ "https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/chat.app.messages.readonly", "https://www.googleapis.com/auth/chat.bot", "https://www.googleapis.com/auth/chat.import", "https://www.googleapis.com/auth/chat.messages.readonly", "https://www.googleapis.com/auth/keep", "https://www.googleapis.com/auth/keep.readonly", ]), ).toEqual([ "https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/chat.messages.readonly", ]); }); it("compacts Google OAuth scopes after filtering user-consent-incompatible scopes", () => { expect( compactGoogleOAuthScopes([ "https://mail.google.com/", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile", "openid", "https://www.googleapis.com/auth/chat.app.spaces", "https://www.googleapis.com/auth/keep.readonly", ]), ).toEqual(["https://mail.google.com/", "email", "profile", "openid"]); });