1 | 'use strict'
|
2 |
|
3 | var run = require('tapdance')
|
4 |
|
5 | var fortune = require('../lib')
|
6 | var createMethod = fortune.methods.create
|
7 |
|
8 | require('./integration/adapters/memory')
|
9 |
|
10 | run(function (assert, comment) {
|
11 | var timestamp
|
12 | var store = fortune({
|
13 | model: {
|
14 | name: { type: String },
|
15 | junk: { type: Object }
|
16 | }
|
17 | })
|
18 |
|
19 | comment('can run in browser')
|
20 |
|
21 | return store.connect()
|
22 | .then(function (store) {
|
23 | assert(store instanceof fortune, 'instantiation works')
|
24 | assert(store.common, 'common dependencies exist')
|
25 |
|
26 | return store.adapter.delete('model')
|
27 | })
|
28 | .then(function () {
|
29 | return Promise.all([
|
30 | store.request({
|
31 | type: 'model',
|
32 | method: createMethod,
|
33 | payload: [
|
34 | { id: 'x-1', name: 'foo' },
|
35 | { id: 'x-2', name: 'bar' }
|
36 | ]
|
37 | }),
|
38 | store.request({
|
39 | type: 'model',
|
40 | method: createMethod,
|
41 | payload: [
|
42 | { id: 'x-3', name: 'baz' },
|
43 | { id: 'x-4', name: 'qux' }
|
44 | ]
|
45 | })
|
46 | ])
|
47 | })
|
48 | .then(function () {
|
49 | assert(true, 'can handle concurrent requests')
|
50 |
|
51 | return store.request({
|
52 | type: 'model',
|
53 | ids: [ 'x-1', 'x-2', 'x-3', 'x-4' ]
|
54 | })
|
55 | })
|
56 | .then(function (response) {
|
57 | var i, j, k, obj = { junk: {} }
|
58 |
|
59 | assert(response.payload.records.length === 4, 'find works')
|
60 |
|
61 | for (i = 100; i--;) {
|
62 | obj.junk[i] = {}
|
63 | for (j = 100; j--;) {
|
64 | obj.junk[i][j] = {}
|
65 | for (k = 100; k--;)
|
66 | obj.junk[i][j][k] = Math.random()
|
67 | }
|
68 | }
|
69 |
|
70 | comment('giant object')
|
71 | timestamp = Date.now()
|
72 |
|
73 | return store.request({
|
74 | type: 'model',
|
75 | method: createMethod,
|
76 | payload: [ obj ]
|
77 | })
|
78 | })
|
79 | .then(function () {
|
80 | comment('operation took ' + (Date.now() - timestamp) + ' ms')
|
81 | assert(true, 'giant object stored')
|
82 | return store.disconnect()
|
83 | })
|
84 | })
|