///
///
///
///
///
describe('UploadLoader', function () {
const scriptLoader = new ScriptLoader();
const cssInjector = new CSSInjector();
it('loads the upload scripts', function () {
const deferredUpload = jQuery.Deferred();
const deferredDropzone = jQuery.Deferred();
const uploadSpy = spyOn(scriptLoader, 'loadRenuoUpload').and.returnValue(deferredUpload.promise());
const dropzoneSpy = spyOn(scriptLoader, 'loadDropzone').and.returnValue(deferredDropzone.promise());
const loader = new UploadLoader(scriptLoader, cssInjector);
loader.loadUpload();
expect(uploadSpy).toHaveBeenCalled();
expect(dropzoneSpy).toHaveBeenCalled();
});
it('resolves correctly (dropzone first)', function () {
const deferredUpload = jQuery.Deferred();
const deferredDropzone = jQuery.Deferred();
spyOn(scriptLoader, 'loadRenuoUpload').and.returnValue(deferredUpload.promise());
spyOn(scriptLoader, 'loadDropzone').and.returnValue(deferredDropzone.promise());
const loader = new UploadLoader(scriptLoader, cssInjector);
const deferred = loader.loadUpload();
expect(deferred.state()).toEqual('pending');
deferredUpload.resolve();
expect(deferred.state()).toEqual('pending');
deferredDropzone.resolve();
expect(deferred.state()).toEqual('resolved');
});
it('resolves correctly (upload first)', function () {
const deferredUpload = jQuery.Deferred();
const deferredDropzone = jQuery.Deferred();
spyOn(scriptLoader, 'loadRenuoUpload').and.returnValue(deferredUpload.promise());
spyOn(scriptLoader, 'loadDropzone').and.returnValue(deferredDropzone.promise());
const loader = new UploadLoader(scriptLoader, cssInjector);
const deferred = loader.loadUpload();
expect(deferred.state()).toEqual('pending');
deferredDropzone.resolve();
expect(deferred.state()).toEqual('pending');
deferredUpload.resolve();
expect(deferred.state()).toEqual('resolved');
});
});