mirror of
https://github.com/kennethnym/aris.git
synced 2026-04-12 21:01:19 +01:00
Compare commits
2 Commits
fix/creden
...
feat/types
| Author | SHA1 | Date | |
|---|---|---|---|
|
037809788a
|
|||
|
9f5427f056
|
@@ -806,31 +806,6 @@ describe("UserSessionManager.updateSourceCredentials", () => {
|
||||
expect(receivedCredentials).toEqual({ token: "refreshed" })
|
||||
})
|
||||
|
||||
test("adds source to session when source is enabled but not yet in session", async () => {
|
||||
// Simulate a source that was never added to the session (e.g. credentials
|
||||
// were missing at config time), but is enabled in the DB.
|
||||
setEnabledSources([]) // no sources during session creation
|
||||
const factory = mock(async () => createStubSource("test"))
|
||||
const provider: FeedSourceProvider = { sourceId: "test", feedSourceForUser: factory }
|
||||
const manager = new UserSessionManager({
|
||||
db: fakeDb,
|
||||
providers: [provider],
|
||||
credentialEncryptor: testEncryptor,
|
||||
})
|
||||
|
||||
const session = await manager.getOrCreate("user-1")
|
||||
// Source is NOT in the session
|
||||
expect(session.hasSource("test")).toBe(false)
|
||||
|
||||
// mockFindResult returns an enabled row by default, so the source
|
||||
// row exists and is enabled in the DB.
|
||||
await manager.updateSourceCredentials("user-1", "test", { token: "new-token" })
|
||||
|
||||
// Source should now be added to the session
|
||||
expect(session.hasSource("test")).toBe(true)
|
||||
expect(factory).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
|
||||
test("persists credentials without session refresh when no active session", async () => {
|
||||
setEnabledSources(["test"])
|
||||
const factory = mock(async () => createStubSource("test"))
|
||||
|
||||
@@ -249,15 +249,11 @@ export class UserSessionManager {
|
||||
// the DB already has the new credentials but the session keeps the old
|
||||
// source. The next session creation will pick up the persisted credentials.
|
||||
const session = this.sessions.get(userId)
|
||||
if (session) {
|
||||
if (session && session.hasSource(sourceId)) {
|
||||
const row = await sources(this.db, userId).find(sourceId)
|
||||
if (row?.enabled) {
|
||||
const source = await provider.feedSourceForUser(userId, row.config ?? {}, credentials)
|
||||
if (session.hasSource(sourceId)) {
|
||||
session.replaceSource(sourceId, source)
|
||||
} else {
|
||||
session.addSource(source)
|
||||
}
|
||||
session.replaceSource(sourceId, source)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user