blob: e47a9a0bdfd322c51fd5d82ae56c18ca48e3cec9 [file] [log] [blame]
Akrond7ad9072019-12-09 07:08:20 +01001define(['pipe'], function (pipeClass) {
2
3 describe('KorAP.Pipe', function () {
4 it('should be initializable', function () {
5 let p = pipeClass.create();
6 expect(p.size()).toEqual(0);
7 });
8
9 it('should be appendable', function () {
10 let p = pipeClass.create();
11 expect(p.size()).toEqual(0);
12 expect(p.toString()).toEqual('');
13 p.append('service1');
14 expect(p.size()).toEqual(1);
15 expect(p.toString()).toEqual('service1');
16 p.append('service2');
17 expect(p.size()).toEqual(2);
18 expect(p.toString()).toEqual('service1,service2');
19
20 p.append('');
21 expect(p.size()).toEqual(2);
22 expect(p.toString()).toEqual('service1,service2');
23 });
24
25 it('should be prependable', function () {
26 let p = pipeClass.create();
27 expect(p.size()).toEqual(0);
28 expect(p.toString()).toEqual('');
29 p.prepend('service1');
30 expect(p.size()).toEqual(1);
31 expect(p.toString()).toEqual('service1');
32 p.prepend('service2');
33 expect(p.size()).toEqual(2);
34 expect(p.toString()).toEqual('service2,service1');
35
36 p.prepend('');
37 expect(p.size()).toEqual(2);
38 expect(p.toString()).toEqual('service2,service1');
39 });
40
41 it('should be trimmed', function () {
42 let p = pipeClass.create();
43 expect(p.size()).toEqual(0);
44 expect(p.toString()).toEqual('');
45 p.prepend(' service1 ');
46 expect(p.size()).toEqual(1);
47 expect(p.toString()).toEqual('service1');
48
49 p.prepend("\t service2 \t");
50 expect(p.size()).toEqual(2);
51 expect(p.toString()).toEqual('service2,service1');
52
53 p.append(' ');
54 expect(p.size()).toEqual(2);
55 expect(p.toString()).toEqual('service2,service1');
56 });
57
Akronb0ae8412026-02-24 11:47:52 +010058 it('should not add duplicates', function () {
59 let p = pipeClass.create();
60 p.append('service1');
61 p.append('service2');
62 expect(p.size()).toEqual(2);
63 expect(p.toString()).toEqual('service1,service2');
64
65 p.append('service1');
66 expect(p.size()).toEqual(2);
67 expect(p.toString()).toEqual('service1,service2');
68
69 p.prepend('service2');
70 expect(p.size()).toEqual(2);
71 expect(p.toString()).toEqual('service1,service2');
72 });
73
Akrond7ad9072019-12-09 07:08:20 +010074 it('should be deletable', function () {
75 let p = pipeClass.create();
76 p.append('service1');
77 p.append('service2');
78 p.append('service3');
79 expect(p.toString()).toEqual('service1,service2,service3');
80 p.remove('service2')
81 expect(p.toString()).toEqual('service1,service3');
82
83 p = pipeClass.create();
84 p.append('service1');
85 p.append('service2');
86 p.append('service3');
87 expect(p.toString()).toEqual('service1,service2,service3');
88 p.remove('service1')
89 expect(p.toString()).toEqual('service2,service3');
90
91 p = pipeClass.create();
92 p.append('service1');
93 p.append('service2');
94 p.append('service3');
95 expect(p.toString()).toEqual('service1,service2,service3');
96 p.remove('service3')
97 expect(p.toString()).toEqual('service1,service2');
98
99 p = pipeClass.create();
100 p.append('service1');
101 p.append('service2');
102 p.append('service3');
103 expect(p.toString()).toEqual('service1,service2,service3');
104 p.remove('service0')
105 expect(p.toString()).toEqual('service1,service2,service3');
106 });
Akronba7a0492019-12-17 20:33:11 +0100107
108 it('should sync with an element', function () {
109 let p = pipeClass.create();
110 let e = p.element();
111 expect(e.tagName).toEqual("INPUT");
Akron24f48ea2020-07-01 09:37:19 +0200112 expect(e.getAttribute("type")).toEqual("text");
Akron910828a2025-06-27 15:38:48 +0200113 expect(e.getAttribute("name")).toEqual("pipe");
Akronba7a0492019-12-17 20:33:11 +0100114 p.append('service1');
115 expect(e.getAttribute("value")).toEqual("service1");
116 p.append('service2');
117 expect(e.getAttribute("value")).toEqual("service1,service2");
118 p.remove('service1');
119 expect(e.getAttribute("value")).toEqual("service2");
Akron910828a2025-06-27 15:38:48 +0200120
121 p = pipeClass.create("response-pipe");
122 e = p.element();
123 expect(e.tagName).toEqual("INPUT");
124 expect(e.getAttribute("type")).toEqual("text");
125 expect(e.getAttribute("name")).toEqual("response-pipe");
Akronba7a0492019-12-17 20:33:11 +0100126 });
Akrond7ad9072019-12-09 07:08:20 +0100127 });
128});