blob: 2d6d6183a037a6bd9659e0b9407d95ece96abc22 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/*
@licstart The following is the entire license notice for the
JavaScript code in this page.
Copyright (C) 2018 Taler Systems SA.
The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
Lesser General Public License (GNU LGPL) as published by the
Free Software Foundation, either version 2.1 of the License,
or (at your option) any later version. The code is distributed
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
LGPL for more details.
As additional permission under GNU LGPL version 2.1 section 7,
you may distribute non-source (e.g., minimized or compacted)
forms of that code without the copy of the GNU LGPL normally
required by section 4, provided you include this license notice
and a URL through which recipients can access the Corresponding
Source.
@licend The above is the entire license notice for the
JavaScript code in this page.
@author Marcello Stanisci
*/
const ava = require("ava");
const sinon = require("sinon");
const swig = require("swig");
const jsdom = require("jsdom");
ava.test.beforeEach(t => {
function xhr_mock() {
t.context.xhr = sinon.useFakeXMLHttpRequest();
t.context.requests = [];
t.context.xhr.onCreate = function(xhr){
t.context.requests.push(xhr);};
global.XMLHttpRequest = t.context.xhr;};
function document_mock() {
var template = swig.compileFile(
__dirname + "/" + "../../" +
"talerbackoffice/backoffice/" +
"templates/backoffice.html");
var html = template({instances: ["mock-instance"]});
var dom = new jsdom.JSDOM(html);
dom.window.document.addEventListener = function(){};
global.document = dom.window.document;};
function minor_mocks() {
global.alert = console.log;
};
xhr_mock();
document_mock();
minor_mocks();
t.context.bo = require("../backoffice");
});
ava.test.afterEach(t => {
delete global.XMLHttpRequest;
delete global.document;
delete global.alert;
delete t.context.xhr;
delete t.context.requests;
});
ava.test("Tracking order id", (t) => {
t.context.bo.track_order(22);
t.context.requests[0].respond(200, "application/json", "{}");
t.pass();
});
ava.test("Order id not found", (t) => {
/**
* FIXME: improve the reaction to a order id not found.
* Alerting a message is not acceptable.
*/
var alert = sinon.spy(global, "alert");
t.context.bo.track_order(22);
t.context.requests[0].respond(404);
sinon.assert.calledWith(alert, "Order ID unknown");
t.pass();
});
|