1
- Tinytest . add ( 'messageformat-ui' , function ( test ) {
2
- test . ok ( true ) ;
3
- } ) ;
1
+ var vm = Npm . require ( 'vm' ) ;
2
+
3
+ function getMfAll ( ) {
4
+ var res = HTTP . get ( Meteor . absoluteUrl ( '/translate/mfAll.js' ) ) ;
5
+ //var json = res.content.match(/^mfPkg.syncAll\(([\s\S]*)\);/)[1];
6
+ var sandbox = {
7
+ out : { } ,
8
+ mfPkg : {
9
+ syncAll : function ( strings , meta ) {
10
+ sandbox . out . strings = strings ;
11
+ sandbox . out . meta = meta ;
12
+ }
13
+ }
14
+ } ;
15
+
16
+ vm . runInNewContext ( res . content , sandbox ) ;
17
+ return sandbox . out ;
18
+ }
19
+
20
+ Tinytest . add ( 'msgfmt:ui - mfAll.js - sorted by key' , function ( test ) {
21
+ // Add some out of order stuff to whatever's already in db
22
+ msgfmt . langUpdate ( 'en' , {
23
+ keyOrderC : { key : 'keyOrderC' , lang : 'en' , text : 'keyOrderC' , ctime : 1453884079148 , mtime : 1453884079148 , revisionId : 'c8eDxMdMJJKDfpEME' , file : 'msgfmt:ui-tests' , line : 0 , func : 'function()' } ,
24
+ keyOrderA : { key : 'keyOrderA' , lang : 'en' , text : 'keyOrderA' , ctime : 1453884079148 , mtime : 1453884079148 , revisionId : 'c8eDxMdMJJKDfpEMF' , file : 'msgfmt:ui-tests' , line : 0 , func : 'function()' } ,
25
+ keyOrderB : { key : 'keyOrderB' , lang : 'en' , text : 'keyOrderB' , ctime : 1453884079148 , mtime : 1453884079148 , revisionId : 'c8eDxMdMJJKDfpEMG' , file : 'msgfmt:ui-tests' , line : 0 , func : 'function()' }
26
+ } , {
27
+ exportedAt : Date . now ( ) ,
28
+ updatedAt : Date . now ( )
29
+ } ) ;
30
+
31
+ var strings = getMfAll ( ) . strings ;
32
+ var keys = Object . keys ( strings . en ) ;
33
+
34
+ // Assert no change in EJSON's behaviour to make sure below remains true
35
+ if ( EJSON . stringify ( { c :1 , a :1 , b :1 } ) !== '{"c":1,"a":1,"b":1}' )
36
+ throw new Error ( "EJSON behaviour has changed" ) ;
37
+
38
+ // Must use EJSON since JSON.stringify re-orders the keys
39
+ test . equal ( EJSON . stringify ( keys ) , EJSON . stringify ( keys . sort ( ) ) ) ;
40
+ } ) ;
0 commit comments