|  | 1 | /** | 
|  | 2 | * @fileoverview Tests involving issuing XHRs for data. | 
|  | 3 | * | 
|  | 4 | * Note that these tests must be run with an HTTP server. | 
|  | 5 | * XHRs can't be issued from file:/// URLs. | 
|  | 6 | * This can be done with | 
|  | 7 | * | 
|  | 8 | *     npm install http-server | 
|  | 9 | *     http-server | 
|  | 10 | *     open http://localhost:8080/auto_tests/runner.html | 
|  | 11 | * | 
|  | 12 | */ | 
|  | 13 |  | 
|  | 14 | import Dygraph from '../../src/dygraph'; | 
|  | 15 | import Util from './Util'; | 
|  | 16 |  | 
|  | 17 | import 'core-js/es6/promise'; | 
|  | 18 |  | 
|  | 19 | function dygraphPromise(div, data, opts) { | 
|  | 20 | return new Promise((resolve, reject) => { | 
|  | 21 | const g = new Dygraph(div, data, opts); | 
|  | 22 | g.ready(() => resolve(g)); | 
|  | 23 | }); | 
|  | 24 | } | 
|  | 25 |  | 
|  | 26 | describe("xhr", () => { | 
|  | 27 |  | 
|  | 28 | it('should issue XHRs for CSV data', () => { | 
|  | 29 | return dygraphPromise('graph', 'data/sample.csv').then(g => { | 
|  | 30 | assert.isNotNull(g); | 
|  | 31 | assert.equal(g.numRows(), 4); | 
|  | 32 | assert.equal(g.numColumns(), 3); | 
|  | 33 | }); | 
|  | 34 | }); | 
|  | 35 |  | 
|  | 36 | it('should warn on out-of-order CSV data', () => { | 
|  | 37 | const calls = {}; | 
|  | 38 | const restore = Util.captureConsole(calls); | 
|  | 39 | return dygraphPromise('graph', 'data/out-of-order.csv').then(g => { | 
|  | 40 | restore(); | 
|  | 41 | assert.isNotNull(g); | 
|  | 42 | assert.equal(g.numRows(), 4); | 
|  | 43 | assert.equal(g.numColumns(), 3); | 
|  | 44 | assert.equal(calls.warn.length, 1); | 
|  | 45 | assert(/out of order/.exec(calls.warn[0])); | 
|  | 46 | }, e => { | 
|  | 47 | restore(); | 
|  | 48 | return Promise.reject(e); | 
|  | 49 | }); | 
|  | 50 | }); | 
|  | 51 |  | 
|  | 52 | it('should warn on out-of-order CSV data with dates', () => { | 
|  | 53 | const calls = {}; | 
|  | 54 | const restore = Util.captureConsole(calls); | 
|  | 55 | return dygraphPromise('graph', 'data/out-of-order-dates.csv').then(g => { | 
|  | 56 | restore(); | 
|  | 57 | assert.isNotNull(g); | 
|  | 58 | assert.equal(g.numRows(), 8); | 
|  | 59 | assert.equal(g.numColumns(), 5); | 
|  | 60 | assert.equal(calls.warn.length, 1); | 
|  | 61 | assert(/out of order/.exec(calls.warn[0])); | 
|  | 62 | }, e => { | 
|  | 63 | restore(); | 
|  | 64 | return Promise.reject(e); | 
|  | 65 | }); | 
|  | 66 | }); | 
|  | 67 |  | 
|  | 68 | }); |