@jupyterlab/testutils 4.0.0-alpha.9 → 4.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/babel.config.d.ts +1 -0
- package/lib/babel.config.js +30 -11
- package/lib/babel.config.js.map +1 -1
- package/lib/index.d.ts +7 -7
- package/lib/index.js +29 -28
- package/lib/index.js.map +1 -1
- package/lib/jest-config.js +6 -38
- package/lib/jest-config.js.map +1 -1
- package/lib/mock.d.ts +2 -100
- package/lib/mock.js +16 -608
- package/lib/mock.js.map +1 -1
- package/package.json +10 -40
- package/src/babel.config.ts +8 -0
- package/src/index.ts +31 -0
- package/src/jest-config.ts +8 -0
- package/src/mock.ts +20 -0
- package/default-45.json +0 -168
- package/default.json +0 -160
- package/lib/common.d.ts +0 -118
- package/lib/common.js +0 -330
- package/lib/common.js.map +0 -1
- package/lib/compare-lighthouse.d.ts +0 -1
- package/lib/compare-lighthouse.js +0 -29
- package/lib/compare-lighthouse.js.map +0 -1
- package/lib/flakyIt.d.ts +0 -15
- package/lib/flakyIt.js +0 -57
- package/lib/flakyIt.js.map +0 -1
- package/lib/jest-file-mock.d.ts +0 -0
- package/lib/jest-file-mock.js +0 -2
- package/lib/jest-file-mock.js.map +0 -1
- package/lib/jest-shim.d.ts +0 -3
- package/lib/jest-shim.js +0 -90
- package/lib/jest-shim.js.map +0 -1
- package/lib/notebook-utils.d.ts +0 -66
- package/lib/notebook-utils.js +0 -197
- package/lib/notebook-utils.js.map +0 -1
- package/lib/rendermime.d.ts +0 -5
- package/lib/rendermime.js +0 -46
- package/lib/rendermime.js.map +0 -1
- package/lib/start_jupyter_server.d.ts +0 -62
- package/lib/start_jupyter_server.js +0 -320
- package/lib/start_jupyter_server.js.map +0 -1
package/lib/babel.config.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/babel.config.js
CHANGED
|
@@ -1,13 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Jupyter Development Team.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
12
28
|
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
const config = __importStar(require("@jupyterlab/testing/lib/babel-config"));
|
|
31
|
+
module.exports = config;
|
|
13
32
|
//# sourceMappingURL=babel.config.js.map
|
package/lib/babel.config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel.config.js","sourceRoot":"","sources":["../src/babel.config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,GAAG
|
|
1
|
+
{"version":3,"file":"babel.config.js","sourceRoot":"","sources":["../src/babel.config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6EAA+D;AAE/D,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
export {
|
|
1
|
+
export { createSessionContext } from '@jupyterlab/apputils/lib/testutils';
|
|
2
|
+
export { createFileContext, createFileContextWithKernel, createSession, DocumentWidgetOpenerMock } from '@jupyterlab/docregistry/lib/testutils';
|
|
3
|
+
export { initNotebookContext, NBTestUtils } from '@jupyterlab/notebook/lib/testutils';
|
|
4
|
+
export { defaultRenderMime } from '@jupyterlab/rendermime/lib/testutils';
|
|
5
|
+
export * as Mock from './mock';
|
|
6
|
+
export { FakeUserManager } from '@jupyterlab/services/lib/testutils';
|
|
7
|
+
export { acceptDialog, dangerDialog, dismissDialog, expectFailure, framePromise, isFulfilled, JupyterServer, signalToPromise, signalToPromises, sleep, testEmission, waitForDialog } from '@jupyterlab/testing';
|
package/lib/index.js
CHANGED
|
@@ -25,32 +25,33 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
return result;
|
|
26
26
|
};
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
-
exports.
|
|
29
|
-
var
|
|
30
|
-
Object.defineProperty(exports, "
|
|
31
|
-
var
|
|
32
|
-
Object.defineProperty(exports, "
|
|
33
|
-
|
|
34
|
-
Object.defineProperty(exports, "
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
Object.defineProperty(exports, "
|
|
38
|
-
Object.defineProperty(exports, "
|
|
39
|
-
|
|
40
|
-
Object.defineProperty(exports, "
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Object.defineProperty(exports, "
|
|
44
|
-
|
|
45
|
-
Object.defineProperty(exports, "
|
|
46
|
-
Object.defineProperty(exports, "
|
|
47
|
-
Object.defineProperty(exports, "
|
|
48
|
-
Object.defineProperty(exports, "
|
|
49
|
-
Object.defineProperty(exports, "
|
|
50
|
-
Object.defineProperty(exports, "
|
|
51
|
-
Object.defineProperty(exports, "
|
|
52
|
-
|
|
53
|
-
Object.defineProperty(exports, "
|
|
54
|
-
|
|
55
|
-
exports.
|
|
28
|
+
exports.waitForDialog = exports.testEmission = exports.sleep = exports.signalToPromises = exports.signalToPromise = exports.JupyterServer = exports.isFulfilled = exports.framePromise = exports.expectFailure = exports.dismissDialog = exports.dangerDialog = exports.acceptDialog = exports.FakeUserManager = exports.Mock = exports.defaultRenderMime = exports.NBTestUtils = exports.initNotebookContext = exports.DocumentWidgetOpenerMock = exports.createSession = exports.createFileContextWithKernel = exports.createFileContext = exports.createSessionContext = void 0;
|
|
29
|
+
var testutils_1 = require("@jupyterlab/apputils/lib/testutils");
|
|
30
|
+
Object.defineProperty(exports, "createSessionContext", { enumerable: true, get: function () { return testutils_1.createSessionContext; } });
|
|
31
|
+
var testutils_2 = require("@jupyterlab/docregistry/lib/testutils");
|
|
32
|
+
Object.defineProperty(exports, "createFileContext", { enumerable: true, get: function () { return testutils_2.createFileContext; } });
|
|
33
|
+
Object.defineProperty(exports, "createFileContextWithKernel", { enumerable: true, get: function () { return testutils_2.createFileContextWithKernel; } });
|
|
34
|
+
Object.defineProperty(exports, "createSession", { enumerable: true, get: function () { return testutils_2.createSession; } });
|
|
35
|
+
Object.defineProperty(exports, "DocumentWidgetOpenerMock", { enumerable: true, get: function () { return testutils_2.DocumentWidgetOpenerMock; } });
|
|
36
|
+
var testutils_3 = require("@jupyterlab/notebook/lib/testutils");
|
|
37
|
+
Object.defineProperty(exports, "initNotebookContext", { enumerable: true, get: function () { return testutils_3.initNotebookContext; } });
|
|
38
|
+
Object.defineProperty(exports, "NBTestUtils", { enumerable: true, get: function () { return testutils_3.NBTestUtils; } });
|
|
39
|
+
var testutils_4 = require("@jupyterlab/rendermime/lib/testutils");
|
|
40
|
+
Object.defineProperty(exports, "defaultRenderMime", { enumerable: true, get: function () { return testutils_4.defaultRenderMime; } });
|
|
41
|
+
exports.Mock = __importStar(require("./mock"));
|
|
42
|
+
var testutils_5 = require("@jupyterlab/services/lib/testutils");
|
|
43
|
+
Object.defineProperty(exports, "FakeUserManager", { enumerable: true, get: function () { return testutils_5.FakeUserManager; } });
|
|
44
|
+
var testing_1 = require("@jupyterlab/testing");
|
|
45
|
+
Object.defineProperty(exports, "acceptDialog", { enumerable: true, get: function () { return testing_1.acceptDialog; } });
|
|
46
|
+
Object.defineProperty(exports, "dangerDialog", { enumerable: true, get: function () { return testing_1.dangerDialog; } });
|
|
47
|
+
Object.defineProperty(exports, "dismissDialog", { enumerable: true, get: function () { return testing_1.dismissDialog; } });
|
|
48
|
+
Object.defineProperty(exports, "expectFailure", { enumerable: true, get: function () { return testing_1.expectFailure; } });
|
|
49
|
+
Object.defineProperty(exports, "framePromise", { enumerable: true, get: function () { return testing_1.framePromise; } });
|
|
50
|
+
Object.defineProperty(exports, "isFulfilled", { enumerable: true, get: function () { return testing_1.isFulfilled; } });
|
|
51
|
+
Object.defineProperty(exports, "JupyterServer", { enumerable: true, get: function () { return testing_1.JupyterServer; } });
|
|
52
|
+
Object.defineProperty(exports, "signalToPromise", { enumerable: true, get: function () { return testing_1.signalToPromise; } });
|
|
53
|
+
Object.defineProperty(exports, "signalToPromises", { enumerable: true, get: function () { return testing_1.signalToPromises; } });
|
|
54
|
+
Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return testing_1.sleep; } });
|
|
55
|
+
Object.defineProperty(exports, "testEmission", { enumerable: true, get: function () { return testing_1.testEmission; } });
|
|
56
|
+
Object.defineProperty(exports, "waitForDialog", { enumerable: true, get: function () { return testing_1.waitForDialog; } });
|
|
56
57
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,gEAA0E;AAAjE,iHAAA,oBAAoB,OAAA;AAC7B,mEAK+C;AAJ7C,8GAAA,iBAAiB,OAAA;AACjB,wHAAA,2BAA2B,OAAA;AAC3B,0GAAA,aAAa,OAAA;AACb,qHAAA,wBAAwB,OAAA;AAE1B,gEAG4C;AAF1C,gHAAA,mBAAmB,OAAA;AACnB,wGAAA,WAAW,OAAA;AAEb,kEAAyE;AAAhE,8GAAA,iBAAiB,OAAA;AAC1B,+CAA+B;AAC/B,gEAAqE;AAA5D,4GAAA,eAAe,OAAA;AACxB,+CAa6B;AAZ3B,uGAAA,YAAY,OAAA;AACZ,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AACX,wGAAA,aAAa,OAAA;AACb,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA;AAChB,gGAAA,KAAK,OAAA;AACL,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA"}
|
package/lib/jest-config.js
CHANGED
|
@@ -1,44 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Jupyter Development Team.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
2
6
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
8
|
};
|
|
5
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
module.exports = function (baseDir) {
|
|
9
|
-
return {
|
|
10
|
-
preset: 'ts-jest/presets/js-with-babel',
|
|
11
|
-
moduleNameMapper: {
|
|
12
|
-
'\\.(css|less|sass|scss)$': 'identity-obj-proxy',
|
|
13
|
-
'\\.(gif|ttf|eot)$': '@jupyterlab/testutils/lib/jest-file-mock.js'
|
|
14
|
-
},
|
|
15
|
-
transform: {
|
|
16
|
-
'\\.svg$': 'jest-raw-loader',
|
|
17
|
-
'^.+\\.md?$': 'markdown-loader-jest'
|
|
18
|
-
},
|
|
19
|
-
testTimeout: 10000,
|
|
20
|
-
setupFiles: ['@jupyterlab/testutils/lib/jest-shim.js'],
|
|
21
|
-
testPathIgnorePatterns: ['/lib/', '/node_modules/'],
|
|
22
|
-
moduleFileExtensions: [
|
|
23
|
-
'ts',
|
|
24
|
-
'tsx',
|
|
25
|
-
'js',
|
|
26
|
-
'jsx',
|
|
27
|
-
'json',
|
|
28
|
-
'node',
|
|
29
|
-
'mjs',
|
|
30
|
-
'cjs'
|
|
31
|
-
],
|
|
32
|
-
transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`],
|
|
33
|
-
reporters: ['default', 'jest-junit', 'jest-summary-reporter'],
|
|
34
|
-
coverageReporters: ['json', 'lcov', 'text', 'html'],
|
|
35
|
-
coverageDirectory: path_1.default.join(baseDir, 'coverage'),
|
|
36
|
-
testRegex: '/test/.*.spec.ts[x]?$',
|
|
37
|
-
globals: {
|
|
38
|
-
'ts-jest': {
|
|
39
|
-
tsconfig: `./tsconfig.test.json`
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
};
|
|
10
|
+
const jest_config_1 = __importDefault(require("@jupyterlab/testing/lib/jest-config"));
|
|
11
|
+
module.exports = jest_config_1.default;
|
|
44
12
|
//# sourceMappingURL=jest-config.js.map
|
package/lib/jest-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jest-config.js","sourceRoot":"","sources":["../src/jest-config.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"jest-config.js","sourceRoot":"","sources":["../src/jest-config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAEH,sFAAuD;AAEvD,MAAM,CAAC,OAAO,GAAG,qBAAI,CAAC"}
|
package/lib/mock.d.ts
CHANGED
|
@@ -1,100 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Context } from '@jupyterlab/docregistry';
|
|
4
|
-
import { Contents, Kernel, KernelMessage, KernelSpec, ServiceManager, Session } from '@jupyterlab/services';
|
|
5
|
-
import { AttachedProperty } from '@lumino/properties';
|
|
6
|
-
export declare const DEFAULT_NAME = "python3";
|
|
7
|
-
export declare const KERNELSPECS: {
|
|
8
|
-
[key: string]: KernelSpec.ISpecModel;
|
|
9
|
-
};
|
|
10
|
-
export declare const KERNEL_MODELS: Kernel.IModel[];
|
|
11
|
-
export declare const NOTEBOOK_PATHS: {
|
|
12
|
-
[kernelName: string]: string[];
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Forceably change the status of a session context.
|
|
16
|
-
* An iopub message is emitted for the change.
|
|
17
|
-
*
|
|
18
|
-
* @param sessionContext The session context of interest.
|
|
19
|
-
* @param newStatus The new kernel status.
|
|
20
|
-
*/
|
|
21
|
-
export declare function updateKernelStatus(sessionContext: ISessionContext, newStatus: KernelMessage.Status): void;
|
|
22
|
-
/**
|
|
23
|
-
* Emit an iopub message on a session context.
|
|
24
|
-
*
|
|
25
|
-
* @param sessionContext The session context
|
|
26
|
-
* @param msg Message created with `KernelMessage.createMessage`
|
|
27
|
-
*/
|
|
28
|
-
export declare function emitIopubMessage(context: ISessionContext, msg: KernelMessage.IIOPubMessage): void;
|
|
29
|
-
/**
|
|
30
|
-
* Create a session context given a partial session model.
|
|
31
|
-
*
|
|
32
|
-
* @param model The session model to use.
|
|
33
|
-
*/
|
|
34
|
-
export declare function createSimpleSessionContext(model?: Private.RecursivePartial<Session.IModel>): ISessionContext;
|
|
35
|
-
/**
|
|
36
|
-
* Clone a kernel connection.
|
|
37
|
-
*/
|
|
38
|
-
export declare function cloneKernel(kernel: Kernel.IKernelConnection): Kernel.IKernelConnection;
|
|
39
|
-
/**
|
|
40
|
-
* A mock kernel object.
|
|
41
|
-
*
|
|
42
|
-
* @param model The model of the kernel
|
|
43
|
-
*/
|
|
44
|
-
export declare const KernelMock: jest.Mock<Kernel.IKernelConnection, [Private.RecursivePartial<Kernel.IKernelConnection.IOptions>]>;
|
|
45
|
-
/**
|
|
46
|
-
* A mock session connection.
|
|
47
|
-
*
|
|
48
|
-
* @param options Addition session options to use
|
|
49
|
-
* @param model A session model to use
|
|
50
|
-
*/
|
|
51
|
-
export declare const SessionConnectionMock: jest.Mock<Session.ISessionConnection, [Private.RecursivePartial<Session.ISessionConnection.IOptions>, Kernel.IKernelConnection | null]>;
|
|
52
|
-
/**
|
|
53
|
-
* A mock session context.
|
|
54
|
-
*
|
|
55
|
-
* @param session The session connection object to use
|
|
56
|
-
*/
|
|
57
|
-
export declare const SessionContextMock: jest.Mock<ISessionContext, [Partial<SessionContext.IOptions>, Session.ISessionConnection | null]>;
|
|
58
|
-
/**
|
|
59
|
-
* A mock contents manager.
|
|
60
|
-
*/
|
|
61
|
-
export declare const ContentsManagerMock: jest.Mock<Contents.IManager, []>;
|
|
62
|
-
/**
|
|
63
|
-
* A mock sessions manager.
|
|
64
|
-
*/
|
|
65
|
-
export declare const SessionManagerMock: jest.Mock<Session.IManager, []>;
|
|
66
|
-
/**
|
|
67
|
-
* A mock kernel specs manager
|
|
68
|
-
*/
|
|
69
|
-
export declare const KernelSpecManagerMock: jest.Mock<KernelSpec.IManager, []>;
|
|
70
|
-
/**
|
|
71
|
-
* A mock service manager.
|
|
72
|
-
*/
|
|
73
|
-
export declare const ServiceManagerMock: jest.Mock<ServiceManager.IManager, []>;
|
|
74
|
-
/**
|
|
75
|
-
* A mock kernel shell future.
|
|
76
|
-
*/
|
|
77
|
-
export declare const MockShellFuture: jest.Mock<Kernel.IShellFuture<KernelMessage.IShellMessage<KernelMessage.ShellMessageType>, KernelMessage.IShellMessage<KernelMessage.ShellMessageType>>, [KernelMessage.IShellMessage<KernelMessage.ShellMessageType>]>;
|
|
78
|
-
/**
|
|
79
|
-
* Create a context for a file.
|
|
80
|
-
*/
|
|
81
|
-
export declare function createFileContext(startKernel?: boolean, manager?: ServiceManager.IManager): Promise<Context>;
|
|
82
|
-
/**
|
|
83
|
-
* A namespace for module private data.
|
|
84
|
-
*/
|
|
85
|
-
declare namespace Private {
|
|
86
|
-
function flattenArray<T>(arr: T[][]): T[];
|
|
87
|
-
type RecursivePartial<T> = {
|
|
88
|
-
[P in keyof T]?: RecursivePartial<T[P]>;
|
|
89
|
-
};
|
|
90
|
-
function createFile(options?: Contents.ICreateOptions): Contents.IModel;
|
|
91
|
-
function fixSlash(path: string): string;
|
|
92
|
-
function makeResponseError<T>(status: number): Promise<T>;
|
|
93
|
-
function cloneKernel(options: RecursivePartial<Kernel.IKernelConnection.IOptions>): Kernel.IKernelConnection;
|
|
94
|
-
function kernelSpecForKernelName(name: string): KernelSpec.ISpecModel;
|
|
95
|
-
function getInfo(name: string): KernelMessage.IInfoReply;
|
|
96
|
-
function changeKernel(kernel: Kernel.IKernelConnection, partialModel: Partial<Kernel.IModel>): Promise<Kernel.IKernelConnection>;
|
|
97
|
-
const RUNNING_KERNELS: Kernel.IKernelConnection[];
|
|
98
|
-
const lastMessageProperty: AttachedProperty<Kernel.IKernelConnection, string>;
|
|
99
|
-
}
|
|
100
|
-
export {};
|
|
1
|
+
export { createFileContext, createSimpleSessionContext, DocumentWidgetOpenerMock, emitIopubMessage, SessionContextMock, updateKernelStatus } from '@jupyterlab/docregistry/lib/testutils';
|
|
2
|
+
export { cloneKernel, ContentsManagerMock, DEFAULT_NAME, KERNELSPECS, KERNEL_MODELS, NOTEBOOK_PATHS, SessionConnectionMock } from '@jupyterlab/services/lib/testutils';
|