1 | require("./common.js");
|
2 |
|
3 | var 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 | })();
|