file-replicator.ts 1.48 KB
import { FileReplicator } from '../../src/file-replicator';

describe("File Replicator", () => {

    let fileReplicator = new FileReplicator();

    let change = [
        { language: 'de', type : "asset", source : "http://someplace.com/icon.jpg" , target : "icon.jpg" } ,
        { language: 'de', type : "asset", source : "http://sampleuri.com/image.png" } ,
        { language: 'en', type : "asset", source : "https://secureasset.com/asset.mp3" , target : "music.mp3" }
    ];

    beforeEach(() => {
        fileReplicator.clear();        
    });

    it("should contain several assets", () => {       
        fileReplicator.pushChanges(change);
        expect(fileReplicator.files.length).toEqual(3);
    });

    it("should get correct asset names", () => {
        let files = fileReplicator.prepareFiles(change);

        expect(files[0].target).toEqual("icon.jpg");
        expect(files[1].target).toEqual("bsync_707608502");
        expect(files[2].target).toEqual("music.mp3");
    });

    it("should only get items with language=de", () => {
        fileReplicator.itemValidator = (item:any) => {
            if (item && item.language === "de") {
                return true;
            }
            return false;
        };

        let files = fileReplicator.prepareFiles(change);

        expect(files.length).toEqual(2);
        expect(files[0].target).toEqual("icon.jpg");
        expect(files[1].target).toEqual("bsync_707608502");

        fileReplicator.itemValidator = null;
    });

});