const fs = require('fs'); const path = require('path'); const { bruToJson } = require('../src'); describe('bruToJson', () => { it('should parse .bru file contents', () => { const requestFile = fs.readFileSync(path.join(__dirname, 'fixtures', 'request.bru'), 'utf8'); const result = bruToJson(requestFile); expect(result).toEqual({ "type": "http-request", "name": "Send Bulk SMS", "seq": 1, "request": { "method": "GET", "url": "https://api.textlocal.in/bulk_json?apiKey=secret=&numbers=919988776655&message=hello&sender=600010", "params": [ { "enabled": true, "name": "apiKey", "value": "secret" }, { "enabled": true, "name": "numbers", "value": "998877665" }, { "enabled": true, "name": "message", "value": "hello" } ], "headers": [ { "enabled": true, "name": "content-type", "value": "application/json" }, { "enabled": true, "name": "accept-language", "value": "en-US,en;q=0.9,hi;q=0.8" }, { "enabled": false, "name": "transaction-id", "value": "{{transactionId}}" } ], "body": { "mode": "json", "json": '{\n "apikey": "secret",\n "numbers": "+91998877665"\n}', "graphql": { "query": "{\n launchesPast {\n launch_success\n }\n}" }, "text": "Hello, there. You must be from the past", "xml": "back to the ice age", "formUrlEncoded": [ { "enabled": true, "name": "username", "value": "john" }, { "enabled": false, "name": "password", "value": "{{password}}" } ], "multipartForm": [ { "enabled": true, "name": "username", "value": "nash" }, { "enabled": false, "name": "password", "value": "governingdynamics" } ] }, "script": "const foo='bar';", "tests": "bruno.test('200 ok', () => {});" } }); }); }); describe('jsonToBru - should parse bru file having empty url', () => { const requestFile = `name Send Bulk SMS method GET url type http-request body-mode none seq 1 `; it('should parse .bru file having empty url', () => { const result = bruToJson(requestFile); expect(result).toEqual({ type: 'http-request', name: 'Send Bulk SMS', seq: 1, request: { method: 'GET', url: '', params: [], headers: [], body: { mode: 'none' }, script: "", tests: "" } }); }); });