{ "info": { "name": "Todo API (Newman)", "_postman_id": "11111111-1111-1111-1111-111111111111", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "Set unique title + dashboard ok", "request": { "method": "GET", "url": "{{baseUrl}}/dashboard" }, "event": [ { "listen": "prerequest", "script": { "exec": [ "pm.environment.set('title', 'Newman Todo ' + Date.now());" ] } }, { "listen": "test", "script": { "exec": [ "pm.test('dashboard returns 200', () => pm.response.to.have.status(200));" ] } } ] }, { "name": "Create todo", "request": { "method": "POST", "body": { "mode": "urlencoded", "urlencoded": [ { "key": "title", "value": "{{title}}", "type": "text" }, { "key": "description", "value": "Created by newman", "type": "text" }, { "key": "status", "value": "not-started", "type": "text" } ] }, "url": "{{baseUrl}}/todo/create" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('title is set', () => {", " pm.expect(pm.environment.get('title')).to.be.ok;", "});", "pm.test('create returns 200 or 302', () => {", " pm.expect([200, 302]).to.include(pm.response.code);", "});" ] } } ] }, { "name": "Find created todo id (todo/get)", "request": { "method": "GET", "url": "{{baseUrl}}/todo/get" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('todo/get returns 200', () => pm.response.to.have.status(200));", "var body = pm.response.json();", "pm.expect(body).to.have.property('todos');", "var title = pm.environment.get('title');", "var found = body.todos.find(t => t.title === title);", "pm.expect(found, 'created todo should exist').to.be.ok;", "pm.environment.set('todo_id', String(found.id));", "pm.test('todo_id saved', () => {", " pm.expect(pm.environment.get('todo_id')).to.be.ok;", "});" ] } } ] }, { "name": "Update status to done", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/x-www-form-urlencoded" } ], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "status", "value": "done", "type": "text" } ] }, "url": "{{baseUrl}}/todo/{{todo_id}}/status" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('todo_id exists', () => {", " pm.expect(pm.environment.get('todo_id')).to.be.ok;", "});", "", "pm.test('update returns 200 or 302', () => {", " pm.expect([200, 302]).to.include(pm.response.code);", "});" ] } } ] }, { "name": "Verify status is done (todo/get)", "request": { "method": "GET", "url": "{{baseUrl}}/todo/get" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('todo/get returns 200', () => pm.response.to.have.status(200));", "", "var body2 = pm.response.json();", "var id2 = pm.environment.get('todo_id');", "pm.expect(id2, 'todo_id should be set').to.be.ok;", "", "var found2 = body2.todos.find(t => String(t.id) === String(id2));", "pm.expect(found2, 'todo should exist').to.be.ok;", "", "pm.test('status is done', () => {", " pm.expect(found2.status).to.eql('done');", "});" ] } } ] }, { "name": "Delete todo", "request": { "method": "POST", "url": "{{baseUrl}}/todo/{{todo_id}}/delete" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('todo_id exists', () => {", " pm.expect(pm.environment.get('todo_id')).to.be.ok;", "});", "", "pm.test('delete returns 200 or 302', () => {", " pm.expect([200, 302]).to.include(pm.response.code);", "});" ] } } ] }, { "name": "Verify todo removed (todo/get)", "request": { "method": "GET", "url": "{{baseUrl}}/todo/get" }, "event": [ { "listen": "test", "script": { "exec": [ "pm.test('todo/get returns 200', () => pm.response.to.have.status(200));", "", "var body3 = pm.response.json();", "var id3 = pm.environment.get('todo_id');", "pm.expect(id3, 'todo_id should be set').to.be.ok;", "", "var found3 = body3.todos.find(t => String(t.id) === String(id3));", "", "pm.test('todo is deleted', () => {", " pm.expect(found3).to.not.be.ok;", "});" ] } } ] } ] }