浏览代码

Add tests for data getter.

Maciej Gołaszewski 6 年之前
父节点
当前提交
f2370360a5
共有 2 个文件被更改,包括 46 次插入2 次删除
  1. 19 2
      packages/ckeditor5-upload/tests/filereader.js
  2. 27 0
      packages/ckeditor5-upload/tests/filerepository.js

+ 19 - 2
packages/ckeditor5-upload/tests/filereader.js

@@ -37,7 +37,24 @@ describe( 'FileReader', () => {
 		expect( reader.loaded ).to.equal( 55 );
 	} );
 
-	describe( 'read', () => {
+	describe( 'data', () => {
+		it( 'should be undefined if file was not loaded', () => {
+			expect( reader.data ).to.be.undefined;
+		} );
+
+		it( 'should equal to loaded file data', () => {
+			const promise = reader.read( fileMock )
+				.then( () => {
+					expect( reader.data ).to.equal( 'File contents.' );
+				} );
+
+			nativeReaderMock.mockSuccess( 'File contents.' );
+
+			return promise;
+		} );
+	} );
+
+	describe( 'read()', () => {
 		it( 'should return a promise', () => {
 			expect( reader.read( fileMock ) ).to.be.instanceOf( Promise );
 		} );
@@ -81,7 +98,7 @@ describe( 'FileReader', () => {
 		} );
 	} );
 
-	describe( 'abort', () => {
+	describe( 'abort()', () => {
 		it( 'should allow to abort reading', () => {
 			const promise = reader.read( fileMock )
 				.then( () => {

+ 27 - 0
packages/ckeditor5-upload/tests/filerepository.js

@@ -452,6 +452,33 @@ describe( 'FileRepository', () => {
 			} );
 		} );
 
+		describe( 'data getter', () => {
+			it( 'should be undefined if no file loaded', () => {
+				expect( loader.data ).to.be.undefined;
+			} );
+
+			it( 'should return promise which resolves to a file', () => {
+				let resolveFile = null;
+
+				const filePromise = new Promise( resolve => {
+					resolveFile = resolve;
+				} );
+
+				const loader = fileRepository.createLoader( filePromise );
+
+				const promise = loader.read()
+					.then( () => {
+						expect( loader.data ).to.equal( 'result data' );
+					} );
+
+				resolveFile( createNativeFileMock() );
+
+				loader.file.then( () => nativeReaderMock.mockSuccess( 'result data' ) );
+
+				return promise;
+			} );
+		} );
+
 		describe( 'read()', () => {
 			it( 'should throw error when status is different than idle', () => {
 				loader.status = 'uploading';