11let test = require ( 'tape' )
2- let sandbox = require ( '@architect/sandbox' )
32let data = require ( '@begin/data' )
3+ let sandbox = require ( '@architect/sandbox' )
4+ let logJSON = i => console . log ( JSON . stringify ( i , null , 2 ) )
45
5- test ( 'env' , t => {
6+ /**
7+ * Begin Data test
8+ * - Demonstrates basic usage of Begin Data, a fast, free, durable, wide-column persistence store already built into your app
9+ */
10+ test ( 'Set up env' , t => {
611 t . plan ( 4 )
7- t . ok ( data , 'data ' )
8- t . ok ( data . get , 'data' )
9- t . ok ( data . set , 'data' )
10- t . ok ( data . destroy , 'data' )
12+ t . ok ( data , 'Begin Data loaded ' )
13+ t . ok ( data . get , 'data.get ready ' )
14+ t . ok ( data . set , 'data.set ready ' )
15+ t . ok ( data . destroy , 'data.destroy ready ' )
1116} )
1217
13- /**
14- * kick a sandbox up
15- */
16- let end
17- test ( 'sandbox.start' , async t => {
18+ let end // Saves a reference to be used later to shut down the sandbox
19+ test ( 'Start sandbox' , async t => {
1820 t . plan ( 1 )
1921 end = await sandbox . start ( )
20- t . ok ( true , 'started sandbox ' )
22+ t . ok ( end , 'Sandbox started! ' )
2123} )
2224
23- /**
24- * working with one document
25- *
26- * - set
27- * - get
28- * - destroy
29- */
30-
31- test ( 'data.set one document' , async t => {
25+ test ( 'data.set (one document)' , async t => {
3226 t . plan ( 1 )
3327 let result = await data . set ( {
3428 table : 'tasks' ,
3529 key : 'task1'
3630 } )
37- t . ok ( result . key === 'task1' , 'wrote document' )
38- console . log ( result )
31+ t . ok ( result . key === 'task1' , 'Wrote document' )
32+ logJSON ( result , null , 2 )
3933} )
4034
41- test ( 'data.get one document' , async t => {
35+ test ( 'data.get ( one document) ' , async t => {
4236 t . plan ( 1 )
4337 let task = await data . get ( {
4438 table : 'tasks' ,
4539 key : 'task1'
4640 } )
47- t . ok ( task . key === 'task1' , 'read document' )
48- console . log ( task )
41+ t . ok ( task . key === 'task1' , 'Read document' )
42+ logJSON ( task , null , 2 )
4943} )
5044
51- test ( 'data.del one document' , async t => {
45+ test ( 'data.destroy ( one document) ' , async t => {
5246 t . plan ( 1 )
5347 let result = await data . destroy ( {
5448 table : 'tasks' ,
5549 key : 'task1'
5650 } )
57- t . ok ( result , 'deleted document' )
58- console . log ( result )
51+ t . ok ( result , 'Deleted document' )
52+ logJSON ( result , null , 2 )
5953} )
6054
6155/**
62- * if no key is supplied one is created
56+ * If no key is supplied, one is created automatically
6357 */
64- test ( 'data.set generates a unique key if one is not supplied ' , async t => {
58+ test ( 'data.set generates a unique key' , async t => {
6559 t . plan ( 1 )
6660 let result = await data . set ( {
6761 table : 'tasks'
6862 } )
69- t . ok ( result . key , 'saved document has a key' )
70- console . log ( result )
63+ t . ok ( result . key , 'Saved document has a key' )
64+ logJSON ( result , null , 2 )
7165} )
7266
7367/**
74- * Any metadata is fine
68+ * Any (meta)data is allowed
7569 */
7670test ( 'data.set allows for any JSON document; only table and key are reserved' , async t => {
7771 t . plan ( 1 )
@@ -81,8 +75,8 @@ test('data.set allows for any JSON document; only table and key are reserved', a
8175 complete : false ,
8276 timeframe : new Date ( Date . now ( ) ) . toISOString ( )
8377 } )
84- t . ok ( result . key , 'saved document is rich ' )
85- console . log ( result )
78+ t . ok ( Object . getOwnPropertyNames ( result . key ) . length > 2 , 'Saved document has multiple properties ' )
79+ logJSON ( result , null , 2 )
8680} )
8781
8882/**
@@ -109,23 +103,23 @@ test('data.set accepts an array to batch save documents', async t => {
109103 timeframe : new Date ( Date . now ( ) ) . toISOString ( )
110104
111105 } ] )
112- t . ok ( result . length , 'saved batch')
113- console . log ( result )
106+ t . equal ( result . length , 3 , 'Saved document batch')
107+ logJSON ( result , null , 2 )
114108} )
115109
110+ /**
111+ * Scan a table
112+ */
116113test ( 'data.get can read an entire table' , async t => {
117114 t . plan ( 1 )
118115 let result = await data . get ( {
119116 table : 'tasks'
120117 } )
121- t . ok ( result , 'got docs' )
122- console . log ( result )
118+ t . ok ( result . length > 1 , 'Got docs' )
119+ logJSON ( result , null , 2 )
123120} )
124121
125- /**
126- * shut down the sandbox cleanly
127- */
128- test ( 'sandbox.end' , async t => {
122+ test ( 'Shut down sandbox' , async t => {
129123 t . plan ( 1 )
130124 end ( )
131125 t . ok ( true , 'shutdown' )
0 commit comments