Total Complexity | 1 |
Complexity/F | 1 |
Lines of Code | 55 |
Function Count | 1 |
Duplicated Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | import {Model, Field, Store, Database, Connection, QueueMessage} from "../src/Jeloquent"; |
||
2 | |||
3 | test('Store can add database', () => { |
||
4 | const store = new Store(); |
||
5 | const database = new Database('default', []); |
||
6 | store.add(database); |
||
7 | store.use('default'); |
||
8 | |||
9 | expect(store.database()).toBeInstanceOf(Database); |
||
10 | store.use('none'); |
||
11 | expect(store.database()).toStrictEqual(null); |
||
12 | }); |
||
13 | |||
14 | |||
15 | |||
16 | test('Store can load dataset through connection adapter', async () => { |
||
17 | |||
18 | class MockAdapter { |
||
19 | all(model) { |
||
20 | return new Promise((resolve) => { |
||
21 | const modelData = [ |
||
22 | {id: 1, name: 'test'}, |
||
23 | {id: 2, name: 'test 2'}, |
||
24 | {id: 3, name: 'test 3'}, |
||
25 | {id: 4, name: 'test 4'}, |
||
26 | {id: 5, name: 'test 5'}, |
||
27 | {id: 6, name: 'test 6'}, |
||
28 | ]; |
||
29 | const message = new QueueMessage(model, 'insert', modelData); |
||
30 | resolve(message); |
||
31 | }); |
||
32 | } |
||
33 | } |
||
34 | |||
35 | class User extends Model { |
||
36 | constructor() { |
||
37 | const fields = [ |
||
38 | new Field('id', true), |
||
39 | new Field('name') |
||
40 | ] |
||
41 | super(fields); |
||
42 | } |
||
43 | } |
||
44 | |||
45 | const store = new Store(); |
||
46 | const database = new Database('default', [User]); |
||
47 | const connection = new Connection(new MockAdapter()); |
||
48 | store.add(database); |
||
49 | store.addConnection(connection); |
||
50 | store.use('default'); |
||
51 | await store.connection().load(User); |
||
52 | |||
53 | expect(User.all().length).toStrictEqual(6); |
||
54 | }); |
||
55 | |||
56 |