The server no longer has files uploaded to it. Instead it is more accurate to refer to it as dealing with "previews" of PRs.
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as express from 'express';
 | |
| import {PreviewServerError} from '../../lib/preview-server/preview-error';
 | |
| import {respondWithError, throwRequestError} from '../../lib/preview-server/utils';
 | |
| 
 | |
| describe('preview-server/utils', () => {
 | |
|   describe('respondWithError', () => {
 | |
|     let endSpy: jasmine.Spy;
 | |
|     let statusSpy: jasmine.Spy;
 | |
|     let response: express.Response;
 | |
| 
 | |
|     beforeEach(() => {
 | |
|       endSpy = jasmine.createSpy('end');
 | |
|       statusSpy = jasmine.createSpy('status').and.callFake(() => response);
 | |
|       response = {status: statusSpy, end: endSpy} as any;
 | |
|     });
 | |
| 
 | |
|     it('should set the status on the response', () => {
 | |
|       respondWithError(response, new PreviewServerError(505, 'TEST MESSAGE'));
 | |
|       expect(statusSpy).toHaveBeenCalledWith(505);
 | |
|       expect(endSpy).toHaveBeenCalledWith('TEST MESSAGE', jasmine.any(Function));
 | |
|     });
 | |
| 
 | |
|     it('should convert non-PreviewServerError errors to 500 PreviewServerErrors', () => {
 | |
|       respondWithError(response, new Error('OTHER MESSAGE'));
 | |
|       expect(statusSpy).toHaveBeenCalledWith(500);
 | |
|       expect(endSpy).toHaveBeenCalledWith('OTHER MESSAGE', jasmine.any(Function));
 | |
|     });
 | |
|   });
 | |
| 
 | |
|   describe('throwRequestError', () => {
 | |
|     it('should throw a suitable error', () => {
 | |
|       let caught = false;
 | |
|       try {
 | |
|         const request = {
 | |
|           body: 'The request body',
 | |
|           method: 'POST',
 | |
|           originalUrl: 'some.domain.com/path',
 | |
|         } as express.Request;
 | |
|         throwRequestError(505, 'ERROR MESSAGE', request);
 | |
|       } catch (error) {
 | |
|         caught = true;
 | |
|         expect(error).toEqual(jasmine.any(PreviewServerError));
 | |
|         expect(error.status).toEqual(505);
 | |
|         expect(error.message).toEqual(`ERROR MESSAGE in request: POST some.domain.com/path "The request body"`);
 | |
|       }
 | |
|       expect(caught).toEqual(true);
 | |
|     });
 | |
|   });
 | |
| });
 |