program-item-factory.spec.ts
3 KB
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
import {ProgramItemFactory} from '../src/program-item/program-item-factory';
import {DummyProgramRepository} from './dummy-program-repository';
import { PROGRAM_ITEM_TYPE_VIDEO, PROGRAM_ITEM_TYPE_SLIDESHOW } from '../src/program-item/program-item';
describe('Program Item Factory', () => {
let dummyProgramRepository = new DummyProgramRepository();
let programItemFactory = new ProgramItemFactory();
programItemFactory.basePath = '/basepath/';
beforeEach(() => {
spyOn(dummyProgramRepository, "findById").and.callFake(() => {
return new Promise<any> ((resolve, reject) => {
resolve({
"_id" : "sample-video-id" ,
"type" : "asset" ,
"filename" : "somefilename.mp4" ,
"url" : "https://somewhere.com/blabalbalx"
});
});
});
spyOn(dummyProgramRepository, "findByIds").and.callFake(() => {
return new Promise<any> ((resolve, reject) => {
resolve([
{
"_id" : "image-id-1" ,
"type" : "asset" ,
"filename" : "somefilename1.jpg" ,
"url" : "https://somewhere.com/1"
},
{
"_id" : "image-id-2" ,
"type" : "asset" ,
"filename" : "somefilename2.jpg" ,
"url" : "https://somewhere.com/2"
},
{
"_id" : "image-id-3" ,
"type" : "asset" ,
"filename" : "somefilename3.jpg" ,
"url" : "https://somewhere.com/3"
},
]);
});
});
programItemFactory.programRepository = dummyProgramRepository;
});
it('should return a video page item', (done) => {
programItemFactory.prepareProgramItem(PROGRAM_ITEM_TYPE_VIDEO, {
video : 'sample-video-id'
}).then((programItem) => {
expect(programItem.type).toEqual(PROGRAM_ITEM_TYPE_VIDEO);
expect(programItem.data.video).toEqual('/basepath/somefilename.mp4');
done();
});
});
it('should return a slideshow page item', (done) => {
programItemFactory.prepareProgramItem(PROGRAM_ITEM_TYPE_SLIDESHOW, {
images : ['image-id-1','image-id-2','image-id-3'] ,
settings : {
speed : 1000 ,
effect : 'something'
}
}).then((programItem) => {
expect(programItem.type).toEqual(PROGRAM_ITEM_TYPE_SLIDESHOW);
expect(programItem.data.speed).toEqual(1000);
expect(programItem.data.effect).toEqual('something');
expect(programItem.data.images).toEqual(['/basepath/somefilename1.jpg','/basepath/somefilename2.jpg','/basepath/somefilename3.jpg']);
done();
});
});
});