Skip to content

Commit

Permalink
Merge branch 'canary' into fundon/01_17_improve_doc_title_and_icon_di…
Browse files Browse the repository at this point in the history
…splay
  • Loading branch information
fundon authored Jan 17, 2025
2 parents d6042d5 + 7790291 commit 921089a
Show file tree
Hide file tree
Showing 7 changed files with 59 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ export class EmbedCardEditModal extends SignalWatcher(
override connectedCallback() {
super.connectedCallback();

this.disposables.add(this.host.slots.unmounted.on(this._hide));
this._updateInfo();
}

Expand Down
4 changes: 4 additions & 0 deletions packages/backend/server/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import cookieParser from 'cookie-parser';
import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.mjs';

import {
AFFiNELogger,
CacheInterceptor,
CloudThrottlerGuard,
GlobalExceptionFilter,
Expand All @@ -20,8 +21,11 @@ export async function createApp() {
cors: true,
rawBody: true,
bodyParser: true,
bufferLogs: true,
});

app.useLogger(app.get(AFFiNELogger));

if (AFFiNE.server.path) {
app.setGlobalPrefix(AFFiNE.server.path);
}
Expand Down
8 changes: 4 additions & 4 deletions packages/backend/server/src/base/logger/service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ConsoleLogger, Injectable, Scope } from '@nestjs/common';
import { ConsoleLogger, Injectable } from '@nestjs/common';

@Injectable({
scope: Scope.TRANSIENT,
})
// DO NOT use this Logger directly
// Use it via this way: `private readonly logger = new Logger(MyService.name)`
@Injectable()
export class AFFiNELogger extends ConsoleLogger {}
9 changes: 4 additions & 5 deletions packages/backend/server/src/base/mailer/mailer.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { FactoryProvider } from '@nestjs/common';
import { FactoryProvider, Logger } from '@nestjs/common';
import { createTransport, Transporter } from 'nodemailer';
import SMTPTransport from 'nodemailer/lib/smtp-transport';

import { Config } from '../config';
import { AFFiNELogger } from '../logger';

export const MAILER_SERVICE = Symbol('MAILER_SERVICE');

Expand All @@ -15,9 +14,9 @@ export const MAILER: FactoryProvider<
Transporter<SMTPTransport.SentMessageInfo> | undefined
> = {
provide: MAILER_SERVICE,
useFactory: (config: Config, logger: AFFiNELogger) => {
useFactory: (config: Config) => {
if (config.mailer) {
logger.setContext('Mailer');
const logger = new Logger('Mailer');
const auth = config.mailer.auth;
if (auth && auth.user && !('pass' in auth)) {
logger.warn(
Expand All @@ -30,5 +29,5 @@ export const MAILER: FactoryProvider<
return undefined;
}
},
inject: [Config, AFFiNELogger],
inject: [Config],
};
9 changes: 3 additions & 6 deletions packages/backend/server/src/core/doc/job.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import { Injectable, OnModuleInit, Optional } from '@nestjs/common';
import { Injectable, Logger, OnModuleInit, Optional } from '@nestjs/common';
import { Cron, CronExpression, SchedulerRegistry } from '@nestjs/schedule';
import { PrismaClient } from '@prisma/client';

import {
AFFiNELogger,
CallMetric,
Config,
type EventPayload,
Expand All @@ -15,16 +14,14 @@ import { PgWorkspaceDocStorageAdapter } from './adapters/workspace';
@Injectable()
export class DocStorageCronJob implements OnModuleInit {
private busy = false;
private readonly logger = new Logger(DocStorageCronJob.name);

constructor(
private readonly config: Config,
private readonly db: PrismaClient,
private readonly workspace: PgWorkspaceDocStorageAdapter,
private readonly logger: AFFiNELogger,
@Optional() private readonly registry?: SchedulerRegistry
) {
this.logger.setContext(DocStorageCronJob.name);
}
) {}

onModuleInit() {
if (this.registry && this.config.doc.manager.enableUpdateAutoMerging) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { LoggingWinston } from '@google-cloud/logging-winston';
import { LoggerService, Provider, Scope } from '@nestjs/common';
import { LoggerService, Provider } from '@nestjs/common';
import { createLogger, transports } from 'winston';

import { AFFiNELogger as LoggerProvide } from '../../../base/logger';
Expand All @@ -20,7 +20,4 @@ export const loggerProvider: Provider<LoggerService> = {
});
return new AFFiNELogger(instance);
},
// use transient to make sure the logger is created for each di context
// to make the `setContext` method works as expected
scope: Scope.TRANSIENT,
};
42 changes: 42 additions & 0 deletions tests/affine-local/e2e/blocksuite/edgeless/embed.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { test } from '@affine-test/kit/playwright';
import {
clickEdgelessModeButton,
locateEditorContainer,
locateElementToolbar,
} from '@affine-test/kit/utils/editor';
import { openHomePage } from '@affine-test/kit/utils/load-page';
import {
clickNewPageButton,
waitForEditorLoad,
} from '@affine-test/kit/utils/page-logic';
import { expect } from '@playwright/test';

const title = 'Edgeless Note Header Test';

test.beforeEach(async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await clickNewPageButton(page, title);
await clickEdgelessModeButton(page);
const container = locateEditorContainer(page);
await container.click();
});

test('should close embed editing modal when editor switching to page mode by short cut', async ({
page,
}) => {
await page.keyboard.press('@');
await page
.getByTestId('cmdk-label')
.getByText('Write, Draw, Plan all at Once.')
.click();
const toolbar = locateElementToolbar(page);
await toolbar.getByLabel('Edit').click();

const editingModal = page.locator('embed-card-edit-modal');
expect(editingModal).toBeVisible();

await page.keyboard.press('Alt+s');
await waitForEditorLoad(page);
expect(editingModal).toBeHidden();
});

0 comments on commit 921089a

Please sign in to comment.