forked from FirebaseExtended/firepad
-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathfirepad-monaco.spec.ts
62 lines (55 loc) · 1.87 KB
/
firepad-monaco.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import { editor } from "monaco-editor";
import { fromMonaco } from "../src/firepad-monaco";
import { getDatabaseAdapter, getEditorAdapter } from "./factory";
import { getMonacoEditor } from "./factory/monaco-editor.factory";
import firebase from "firebase/app";
jest.mock("../src/firebase-adapter", () => {
const { getDatabaseAdapter } = require("./factory/database-adapter.factory");
class FirebaseAdapterMock {
constructor(
databaseRef: string | firebase.database.Reference,
userId: number | string,
userColor: string,
userName: string
) {
return getDatabaseAdapter(databaseRef, { userId, userColor, userName });
}
}
return {
__esModule: true,
FirebaseAdapter: FirebaseAdapterMock,
};
});
jest.mock("../src/monaco-adapter", () => {
const { getEditorAdapter } = require("./factory/editor-adapter.factory");
class MonacoAdapterMock {
constructor(monacoInstance: editor.IStandaloneCodeEditor) {
return getEditorAdapter(monacoInstance);
}
}
return {
__esModule: true,
MonacoAdapter: MonacoAdapterMock,
};
});
describe("fromMonaco", () => {
let databaseRef: string;
let monacoEditor: editor.IStandaloneCodeEditor;
beforeAll(() => {
databaseRef = ".root/firepad";
monacoEditor = getMonacoEditor();
});
it("should allow passing additional configuration object", () => {
const userId = "user";
fromMonaco(databaseRef, monacoEditor, { userId });
expect(getDatabaseAdapter().getUser().userId).toEqual(userId);
});
it("should create database adapter from Firebase reference", () => {
fromMonaco(databaseRef, monacoEditor);
expect(getDatabaseAdapter().getDatabaseRef()).toEqual(databaseRef);
});
it("should create editor adapter from Monaco instance", () => {
fromMonaco(databaseRef, monacoEditor);
expect(getEditorAdapter().getEditor()).toEqual(monacoEditor);
});
});