mirror of
				https://github.com/jely2002/youtube-dl-gui.git
				synced 2021-11-01 22:46:21 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const InfoQuery = require("../modules/info/InfoQuery");
 | 
						|
 | 
						|
describe('Connect the InfoQuery', () => {
 | 
						|
    beforeEach(() => {
 | 
						|
       jest.clearAllMocks();
 | 
						|
    });
 | 
						|
    it('Checks the error when applicable', async () => {
 | 
						|
        const [env, instance] = instanceBuilder();
 | 
						|
        env.metadataLimiter.schedule.mockRejectedValue({ stderr: "test-error"});
 | 
						|
        const result = instance.connect();
 | 
						|
        await result;
 | 
						|
        expect(env.errorHandler.checkError).toBeCalledWith("test-error", "test__id");
 | 
						|
    });
 | 
						|
    it('Returns null on error', async () => {
 | 
						|
        const [env, instance] = instanceBuilder();
 | 
						|
        env.metadataLimiter.schedule.mockRejectedValue({ stderr: "test-error"});
 | 
						|
        const result = instance.connect();
 | 
						|
        await expect(result).resolves.toBe(null);
 | 
						|
    });
 | 
						|
    it('Schedules the query', async () => {
 | 
						|
        const [env, instance] = instanceBuilder();
 | 
						|
        const jsonString = "{\"test\": \"data\"}";
 | 
						|
        env.metadataLimiter.schedule.mockResolvedValue(jsonString);
 | 
						|
        const result = instance.connect();
 | 
						|
        await result;
 | 
						|
        expect(env.metadataLimiter.schedule).toBeCalledTimes(1);
 | 
						|
    });
 | 
						|
    it('Returns the parsed query data', async () => {
 | 
						|
        const [env, instance] = instanceBuilder();
 | 
						|
        const jsonString = "{\"test\": \"data\"}";
 | 
						|
        env.metadataLimiter.schedule.mockResolvedValue(jsonString);
 | 
						|
        const result = instance.connect();
 | 
						|
        await expect(result).resolves.toMatchObject(JSON.parse(jsonString))
 | 
						|
    });
 | 
						|
});
 | 
						|
 | 
						|
function instanceBuilder() {
 | 
						|
    const env = {
 | 
						|
        metadataLimiter: {
 | 
						|
            schedule: jest.fn()
 | 
						|
        },
 | 
						|
        errorHandler: {
 | 
						|
            checkError: jest.fn()
 | 
						|
        }
 | 
						|
    };
 | 
						|
    return [env, new InfoQuery("http://url.link", "test__id", env)];
 | 
						|
}
 | 
						|
 |