From 5b2836ae38c906cd384e7ce70a3f0b2d521723dc Mon Sep 17 00:00:00 2001 From: Rannie Peralta Date: Wed, 30 Oct 2024 18:11:08 +0800 Subject: [PATCH] Fix circular imports when importing ReactDialog (#14352) Fixes #14347 Contributed on behalf of Toro Cloud Signed-off-by: Rannie Peralta --- packages/core/src/browser/dialogs.ts | 2 +- .../src/browser/dialogs/react-dialog.spec.tsx | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 packages/core/src/browser/dialogs/react-dialog.spec.tsx diff --git a/packages/core/src/browser/dialogs.ts b/packages/core/src/browser/dialogs.ts index c72fe33792ea6..73f0338a86919 100644 --- a/packages/core/src/browser/dialogs.ts +++ b/packages/core/src/browser/dialogs.ts @@ -17,7 +17,7 @@ import { injectable, inject } from 'inversify'; import { Disposable, MaybePromise, CancellationTokenSource, nls } from '../common'; import { Key } from './keyboard/keys'; -import { Widget, BaseWidget, Message, addKeyListener, codiconArray } from './widgets'; +import { Widget, BaseWidget, Message, addKeyListener, codiconArray } from './widgets/widget'; import { FrontendApplicationContribution } from './frontend-application-contribution'; @injectable() diff --git a/packages/core/src/browser/dialogs/react-dialog.spec.tsx b/packages/core/src/browser/dialogs/react-dialog.spec.tsx new file mode 100644 index 0000000000000..12aec8aea57e3 --- /dev/null +++ b/packages/core/src/browser/dialogs/react-dialog.spec.tsx @@ -0,0 +1,47 @@ +// ***************************************************************************** +// Copyright (C) 2024 Toro Cloud Pty Ltd and others. +// +// This program and the accompanying materials are made available under the +// terms of the Eclipse Public License v. 2.0 which is available at +// http://www.eclipse.org/legal/epl-2.0. +// +// This Source Code may also be made available under the following Secondary +// Licenses when the conditions for such availability set forth in the Eclipse +// Public License v. 2.0 are satisfied: GNU General Public License, version 2 +// with the GNU Classpath Exception which is available at +// https://www.gnu.org/software/classpath/license.html. +// +// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 +// ***************************************************************************** + +import * as assert from 'assert'; +import * as React from 'react'; +import { enableJSDOM } from '../test/jsdom'; + +let disableJSDOM = enableJSDOM(); + +import { ReactDialog } from './react-dialog'; + +class MyDialog extends ReactDialog { + constructor() { + super({ title: '' }); + } + + override get value(): void { + return; + } + + protected override render(): React.ReactNode { + return <>; + } +} + +describe('ReactDialog', () => { + before(() => disableJSDOM = enableJSDOM()); + after(() => disableJSDOM()); + + it('should be extended', () => { + const dialog = new MyDialog(); + assert.equal(dialog instanceof ReactDialog, true); + }); +});