1
+ const async = require ( "async" ) ;
2
+ const moment = require ( "moment" ) ;
3
+ const mongo = require ( "mongodb" ) ;
4
+ const client = mongo . MongoClient ;
5
+
6
+ const generator = require ( "./generator" ) ;
7
+ const DB_URL = "mongodb://<username>:<password>@<hostname>:<port>/<database>" ;
8
+ const DB_COLLECTION = "tzoffset_test" ;
9
+
10
+
11
+ let db , res ;
12
+ async . waterfall ( [
13
+
14
+ // connect to database
15
+ function ( done ) {
16
+ client . connect ( DB_URL , ( err , _db ) => {
17
+ db = _db ;
18
+ done ( err ) ;
19
+ } ) ;
20
+ } ,
21
+
22
+ //------------------------------------------------------
23
+ // drop test collection
24
+ //function (done) {
25
+ // db.collection(DB_COLLECTION).drop((err) => {
26
+ // done(err);
27
+ // });
28
+ //},
29
+ //------------------------------------------------------
30
+
31
+ //------------------------------------------------------
32
+ // insert test documents
33
+ //function (done) {
34
+ // const docs = [
35
+ // { time: new Date("2016-03-27T00:59:59Z"), name: "CET" },
36
+ // { time: new Date("2016-03-27T01:00:00Z"), name: "CEST" },
37
+ // { time: new Date("2016-03-27T01:00:01Z"), name: "CEST" },
38
+ // { time: new Date("2016-10-30T00:59:59Z"), name: "CEST" },
39
+ // { time: new Date("2016-10-30T01:00:00Z"), name: "CET" },
40
+ // { time: new Date("2016-10-30T01:00:01Z"), name: "CET" }
41
+ // ];
42
+ // db.collection(DB_COLLECTION).insert(docs, (err, res) => {
43
+ // done(err);
44
+ // })
45
+ //},
46
+ //------------------------------------------------------
47
+
48
+ // perform test query
49
+ function ( done ) {
50
+ const start = moment . utc ( "2016-01-01T00:00:00Z" ) ;
51
+ const end = moment . utc ( "2017-01-01T00:00:00Z" ) ;
52
+ const tz = "Europe/Berlin" ;
53
+
54
+ const cond = generator ( start , end , tz ) ;
55
+ db . collection ( DB_COLLECTION ) . aggregate ( [
56
+ {
57
+ $project : {
58
+ name : "$name" ,
59
+ time_orig : "$time" ,
60
+ time_conv : cond
61
+ }
62
+ } ,
63
+ {
64
+ $limit : 100
65
+ }
66
+ ] ) . toArray ( ( err , _res ) => {
67
+ res = _res ;
68
+ done ( err ) ;
69
+ } ) ;
70
+ }
71
+
72
+ ] , ( err ) => {
73
+
74
+ if ( err ) {
75
+ console . error ( err ) ;
76
+ } else {
77
+ console . log ( res ) ;
78
+ }
79
+
80
+ if ( db ) {
81
+ db . close ( ) ;
82
+ }
83
+
84
+ } ) ;
0 commit comments