(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
This commit is contained in:
Paul Fitzpatrick 2020-10-06 17:32:56 -04:00
parent 2d023377ce
commit 8dbcbba6b5
3 changed files with 6 additions and 4 deletions

View File

@ -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() {

View File

@ -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;

View File

@ -19,7 +19,7 @@ export const create: ICreate = {
addWebhooks(app: any) { /* do nothing */ }
};
},
Notifier(dbManager: HomeDBManager, homeUrl: string) {
Notifier() {
return {
get testPending() { return false; }
};