UNPKG

2.07 kBJavaScriptView Raw
1require("./common.js");
2
3var RecentTracksParser = require("lastfm/recenttracks-parser");
4
5(function() {
6 var parser, gently;
7
8 describe("parser")
9
10 before(function() {
11 parser = new RecentTracksParser();
12 gently = new Gently();
13 })
14
15 it("emits error when empty", function() {
16 gently.expect(parser, "emit", function(event, error) {
17 assert.equal("error", event);
18 });
19 parser.parse('');
20 })
21
22 it("emits error when no recenttracks object", function() {
23 gently.expect(parser, "emit", function(event, error) {
24 assert.equal("error", event);
25 assert.ok(error.message.indexOf(FakeData.UnknownObject) > -1);
26 });
27 parser.parse(FakeData.UnknownObject);
28 })
29
30 it("emits error when no recenttracks.track object", function() {
31 gently.expect(parser, "emit", function(event, error) {
32 assert.equal("error", event);
33 assert.ok(error.message.indexOf(FakeData.UnexpectedRecentTracks) > -1);
34 });
35 parser.parse(FakeData.UnexpectedRecentTracks);
36 });
37
38 it("emits track for value of recenttracks.track", function() {
39 gently.expect(parser, "emit", function(event, track) {
40 assert.equal("track", event);
41 assert.equal(42, track);
42 });
43 parser.parse(FakeData.SingleRecentTrack);
44 })
45
46 it("returns multiple track when array", function() {
47 gently.expect(parser, "emit", function(event, tracks) {
48 assert.equal("first", tracks[0]);
49 assert.equal("second", tracks[1]);
50 });
51 parser.parse(FakeData.MultipleRecentsTracks);
52 })
53
54 it("emits error when response contains error", function() {
55 gently.expect(parser, "emit", function(event, error) {
56 assert.equal("error", event);
57 assert.equal(FakeData.Error.message, error.message);
58 });
59 parser.parse(FakeData.Error);
60 });
61
62 it("emits error containing received data when garbage", function() {
63 gently.expect(parser, "emit", function(event, error) {
64 assert.equal("error", event);
65 assert.ok(error.message.indexOf(FakeData.Garbage) > -1);
66 });
67 parser.parse(FakeData.Garbage);
68 });
69})();