From 8dbcbba6b599020a1193d2361799880126508620 Mon Sep 17 00:00:00 2001 From: Paul Fitzpatrick Date: Tue, 6 Oct 2020 17:32:56 -0400 Subject: [PATCH] (core) fix invite links and add tests with APP_HOME_URL set Summary: Invite links broke when some base domain plumbing changed. This fix updates them to be aware of the base domain, and tests the Notifier class with APP_HOME_URL set to make sure the environment variable has the expected effect. Test Plan: added test, updated tests Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2630 --- app/server/lib/FlexServer.ts | 5 +++-- app/server/lib/ICreate.ts | 3 ++- stubs/app/server/lib/create.ts | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/server/lib/FlexServer.ts b/app/server/lib/FlexServer.ts index 41f22b41..07463658 100644 --- a/app/server/lib/FlexServer.ts +++ b/app/server/lib/FlexServer.ts @@ -40,7 +40,7 @@ import {addPluginEndpoints, limitToPlugins} from 'app/server/lib/PluginEndpoint' import {PluginManager} from 'app/server/lib/PluginManager'; import {adaptServerUrl, addOrgToPathIfNeeded, addPermit, getScope, optStringParam, RequestWithGristInfo, stringParam, TEST_HTTPS_OFFSET, trustOrigin} from 'app/server/lib/requestUtils'; -import {ISendAppPageOptions, makeSendAppPage} from 'app/server/lib/sendAppPage'; +import {ISendAppPageOptions, makeSendAppPage, makeGristConfig} from 'app/server/lib/sendAppPage'; import {getDatabaseUrl} from 'app/server/lib/serverUtils'; import {Sessions} from 'app/server/lib/Sessions'; import * as shutdown from 'app/server/lib/shutdown'; @@ -1031,7 +1031,8 @@ export class FlexServer implements GristServer { // and all that is needed is a refactor to pass that info along. But there is also the // case of notification(s) from stripe. May need to associate a preferred base domain // with org/user and persist that? - this.notifier = this.create.Notifier(this.dbManager, this.getDefaultHomeUrl()); + const gristConfig = makeGristConfig(this.getDefaultHomeUrl(), {}, this._defaultBaseDomain); + this.notifier = this.create.Notifier(this.dbManager, gristConfig); } public addUsage() { diff --git a/app/server/lib/ICreate.ts b/app/server/lib/ICreate.ts index e6f6b347..4c71fa57 100644 --- a/app/server/lib/ICreate.ts +++ b/app/server/lib/ICreate.ts @@ -1,3 +1,4 @@ +import { GristLoadConfig } from 'app/common/gristUrls'; import { HomeDBManager } from 'app/gen-server/lib/HomeDBManager'; import { ActiveDoc } from 'app/server/lib/ActiveDoc'; import { ScopedSession } from 'app/server/lib/BrowserSession'; @@ -18,7 +19,7 @@ export interface ICreate { LoginSession(comm: Comm, sid: string, domain: string, scopeSession: ScopedSession, instanceManager: IInstanceManager|null): ILoginSession; Billing(dbManager: HomeDBManager): IBilling; - Notifier(dbManager: HomeDBManager, homeUrl: string): INotifier; + Notifier(dbManager: HomeDBManager, gristConfig: GristLoadConfig): INotifier; Shell(): IShell|undefined; ExternalStorage(bucket: string, prefix: string): ExternalStorage|undefined; ActiveDoc(docManager: DocManager, docName: string): ActiveDoc; diff --git a/stubs/app/server/lib/create.ts b/stubs/app/server/lib/create.ts index 91b6d588..e38247ad 100644 --- a/stubs/app/server/lib/create.ts +++ b/stubs/app/server/lib/create.ts @@ -19,7 +19,7 @@ export const create: ICreate = { addWebhooks(app: any) { /* do nothing */ } }; }, - Notifier(dbManager: HomeDBManager, homeUrl: string) { + Notifier() { return { get testPending() { return false; } };