fastfood/postman_scripts/menu app.postman_collection...

3891 lines
111 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"info": {
"_postman_id": "a3191130-ff05-45b0-81c9-574532f3996f",
"name": "menu app",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "24396936"
},
"item": [
{
"name": "Тестовый сценарий",
"item": [
{
"name": "CRUD для Меню",
"item": [
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Создает меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_menu_id', responseJSON.id);\r",
"postman.setEnvironmentVariable('target_menu_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_menu_description', responseJSON.description);\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_menu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_menu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_description')).to.eql(responseJSON.description);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is not empty list\r",
"pm.test(\"Response is not empty list\", function() {\r",
" pm.expect(responseJSON).not.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Просматривает определенное меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_menu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_menu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Обновляет меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Status code is 200\", () => {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_menu_title' from environment & response are not equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_title')).not.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_menu_description' from environment & response are not equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_description')).not.eql(responseJSON.description);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_menu_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_menu_description', responseJSON.description);\r",
"\r",
"// check that 'target_menu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_menu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_description')).to.eql(responseJSON.description);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated menu 1\",\r\n \"description\": \"My updated menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает определенное меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_menu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_menu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Просматривает определенное меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 404 NOT FOUND\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(404);\r",
"});\r",
"\r",
"// check that default message & response are equal\r",
"pm.test(\"Response detail message is correct\", () => {\r",
" pm.expect(\"menu not found\").to.eql(responseJSON.detail);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
},
{
"name": "CRUD для Подменю",
"item": [
{
"name": "Создает меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_menu_id', responseJSON.id);\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Просматривает список подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Создает подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_submenu_id', responseJSON.id);\r",
"postman.setEnvironmentVariable('target_submenu_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_submenu_description', responseJSON.description);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_submenu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_description')).to.eql(responseJSON.description);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Просматривает список подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is not empty list\r",
"pm.test(\"Response is not empty list\", function() {\r",
" pm.expect(responseJSON).not.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Просматривает определенное подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_submenu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Обновляет подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Status code is 200\", () => {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_submenu_title' from environment & response are not equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_title')).not.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are not equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_description')).not.eql(responseJSON.description);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_submenu_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_submenu_description', responseJSON.description);\r",
"\r",
"// check that 'target_submenu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_description')).to.eql(responseJSON.description);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated submenu 1\",\r\n \"description\": \"My updated submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает определенное подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_submenu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Просматривает определенное подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 404 NOT FOUND\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(404);\r",
"});\r",
"\r",
"// check that default message & response are equal\r",
"pm.test(\"Response detail message is correct\", () => {\r",
" pm.expect(\"submenu not found\").to.eql(responseJSON.detail);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
},
{
"name": "CRUD для Блюда",
"item": [
{
"name": "Создает меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_menu_id', responseJSON.id);\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Создает подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_submenu_id', responseJSON.id);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Просматривает список блюд",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Создает блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_dish_id', responseJSON.id);\r",
"postman.setEnvironmentVariable('target_dish_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_dish_description', responseJSON.description);\r",
"postman.setEnvironmentVariable('target_dish_price', responseJSON.price);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_submenu_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_submenu_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
"// check that 'target_dish_price' from environment & response are equal\r",
"pm.test(\"Response contains 'description' price\", () => {\r",
" pm.expect(pm.environment.get('target_dish_price')).to.eql(responseJSON.price);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Просматривает список блюд",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is not empty list\r",
"pm.test(\"Response is not empty list\", function() {\r",
" pm.expect(responseJSON).not.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Просматривает определенное блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_dish_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_dish_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_dish_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
"// check that 'target_dish_price' from environment & response are equal\r",
"pm.test(\"Response contains 'price' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_price')).to.eql(responseJSON.price);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes/{{target_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes",
"{{target_dish_id}}"
]
}
},
"response": []
},
{
"name": "Обновляет блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Status code is 200\", () => {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_dish_title' from environment & response are not equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_title')).not.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_dish_description' from environment & response are not equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_description')).not.eql(responseJSON.description);\r",
"});\r",
"\r",
"// check that 'target_dish_price' from environment & response are not equal\r",
"pm.test(\"Response contains 'price' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_price')).not.eql(responseJSON.price);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_dish_title', responseJSON.title);\r",
"postman.setEnvironmentVariable('target_dish_description', responseJSON.description);\r",
"postman.setEnvironmentVariable('target_dish_price', responseJSON.price);\r",
"\r",
"// check that 'target_dish_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_dish_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
"// check that 'target_dish_price' from environment & response are equal\r",
"pm.test(\"Response contains 'price' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_price')).to.eql(responseJSON.price);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated dish 1\",\r\n \"description\": \"My updated dish description 1\",\r\n \"price\": \"14.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes/{{target_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes",
"{{target_dish_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает определенное блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_dish_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'target_dish_title' from environment & response are equal\r",
"pm.test(\"Response contains 'title' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_title')).to.eql(responseJSON.title);\r",
"});\r",
"\r",
"// check that 'target_dish_description' from environment & response are equal\r",
"pm.test(\"Response contains 'description' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_description')).to.eql(responseJSON.description);\r",
"});\r",
"\r",
"// check that 'target_dish_price' from environment & response are equal\r",
"pm.test(\"Response contains 'price' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_price')).to.eql(responseJSON.price);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes/{{target_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes",
"{{target_dish_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes/{{target_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes",
"{{target_dish_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список блюд",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Просматривает определенное блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 404 NOT FOUND\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(404);\r",
"});\r",
"\r",
"// check that default message & response are equal\r",
"pm.test(\"Response detail message is correct\", () => {\r",
" pm.expect(\"dish not found\").to.eql(responseJSON.detail);\r",
"});\r",
"\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes/{{target_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes",
"{{target_dish_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Удаляет меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
},
{
"name": "Проверка кол-ва блюд и подменю в меню",
"item": [
{
"name": "Создает меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_menu_id', responseJSON.id);\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
},
{
"name": "Создает подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_submenu_id', responseJSON.id);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Создает блюдо 1",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_dish_id', responseJSON.id);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My dish 2\",\r\n \"description\": \"My dish description 2\",\r\n \"price\": \"13.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Создает блюдо 2",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"// Save env vars\r",
"postman.setEnvironmentVariable('target_dish_id', responseJSON.id);\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Просматривает определенное меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'submenus_count' from environment & response are equal\r",
"pm.test(\"Response contains 'submenus_count' property\", () => {\r",
" pm.expect(1).to.eql(responseJSON.submenus_count);\r",
"});\r",
"\r",
"// check that 'dishes_count' from environment & response are equal\r",
"pm.test(\"Response contains 'dishes_count' property\", () => {\r",
" pm.expect(2).to.eql(responseJSON.dishes_count);\r",
"});\r",
"\r",
"console.log(responseJSON)\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает определенное подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that 'target_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'dishes_count' from environment & response are equal\r",
"pm.test(\"Response contains 'dishes_count' property\", () => {\r",
" pm.expect(responseJSON.dishes_count).to.eql(2);\r",
"});\r",
"console.log(responseJSON);"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus"
]
}
},
"response": []
},
{
"name": "Просматривает список блюд",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}/submenus/{{target_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}",
"submenus",
"{{target_submenu_id}}",
"dishes"
]
}
},
"response": []
},
{
"name": "Просматривает определенное меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"console.log(responseJSON);\r",
"\r",
"// check that 'target_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('target_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
"\r",
"// check that 'submenus_count' from environment & response are equal\r",
"pm.test(\"Response contains 'submenus_count' property\", () => {\r",
" pm.expect(responseJSON.submenus_count).to.eql(0);\r",
"});\r",
"\r",
"// check that 'dishes_count' from environment & response are equal\r",
"pm.test(\"Response contains 'dishes_count' property\", () => {\r",
" pm.expect(responseJSON.dishes_count).to.eql(0);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Удаляет меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{target_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{target_menu_id}}"
]
}
},
"response": []
},
{
"name": "Просматривает список меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
"\r",
"// check that response is empty list\r",
"pm.test(\"Response is empty list\", function() {\r",
" pm.expect(responseJSON).to.eql([]);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": []
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
]
},
{
"name": "api",
"item": [
{
"name": "menu",
"item": [
{
"name": "Просмотр списка меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": [
{
"name": "Выдача списка меню",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "[\r\n {\r\n \"id\": \"a2eb416c-2245-4526-bb4b-6343d5c5016f\",\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\",\r\n \"submenus_count\": 0,\r\n \"dishes_count\": 0\r\n }\r\n]"
}
]
},
{
"name": "Просмотр определенного меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"response": [
{
"name": "Меню найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"a2eb416c-2245-4526-bb4b-6343d5c5016f\",\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\",\r\n \"submenus_count\": 0,\r\n \"dishes_count\": 0\r\n}"
},
{
"name": "Меню не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"menu not found\"\r\n}"
}
]
},
{
"name": "Создать меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"postman.setEnvironmentVariable('api_test_menu_id', responseJSON.id);\r",
"\r",
"// check that 'api_test_menu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('api_test_menu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"response": [
{
"name": "Меню создано",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus"
]
}
},
"code": 201,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"9a5bce5f-4462-4d12-a66c-d59584b19ee8\",\r\n \"title\": \"My menu 1\",\r\n \"description\": \"My menu description 1\",\r\n \"submenus_count\": 0,\r\n \"dishes_count\": 0\r\n}"
}
]
},
{
"name": "Обновить меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated menu 1\",\r\n \"description\": \"My updated menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"response": [
{
"name": "Меню обновлено",
"originalRequest": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated menu 1\",\r\n \"description\": \"My updated menu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"a2eb416c-2245-4526-bb4b-6343d5c5016f\",\r\n \"title\": \"My updated menu 1\",\r\n \"description\": \"My updated menu description 1\",\r\n \"submenus_count\": 0,\r\n \"dishes_count\": 0\r\n}"
},
{
"name": "Меню не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"menu not found\"\r\n}"
}
]
},
{
"name": "Удалить меню",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"response": [
{
"name": "Меню удалено",
"originalRequest": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"status\": true,\r\n \"message\": \"The menu has been deleted\"\r\n}"
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
},
{
"name": "submenu",
"item": [
{
"name": "Просмотр списка подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus"
]
}
},
"response": [
{
"name": "Выдача списка подменю",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "[\r\n {\r\n \"id\": \"bc19488a-cc0e-4eaa-8d21-4d486a45392f\",\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\",\r\n \"dishes_count\": 0\r\n }\r\n]"
}
]
},
{
"name": "Просмотр определенного подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"response": [
{
"name": "Подменю найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"bc19488a-cc0e-4eaa-8d21-4d486a45392f\",\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\",\r\n \"dishes_count\": 0\r\n}"
},
{
"name": "Подменю не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"submenu not found\"\r\n}"
}
]
},
{
"name": "Создать подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"postman.setEnvironmentVariable('api_test_submenu_id', responseJSON.id);\r",
"\r",
"// check that 'api_test_submenu_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('api_test_submenu_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus"
]
}
},
"response": [
{
"name": "Подменю создано",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus"
]
}
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"bc19488a-cc0e-4eaa-8d21-4d486a45392f\",\r\n \"title\": \"My submenu 1\",\r\n \"description\": \"My submenu description 1\",\r\n \"dishes_count\": 0\r\n}"
}
]
},
{
"name": "Обновить подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated submenu 1\",\r\n \"description\": \"My updated submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"response": [
{
"name": "Подменю обновлено",
"originalRequest": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated submenu 1\",\r\n \"description\": \"My updated submenu description 1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"bc19488a-cc0e-4eaa-8d21-4d486a45392f\",\r\n \"title\": \"My updated submenu 1\",\r\n \"description\": \"My updated submenu description 1\",\r\n \"dishes_count\": 0\r\n}"
},
{
"name": "Подменю не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"submenu not found\"\r\n}"
}
]
},
{
"name": "Удалить подменю",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"response": [
{
"name": "Подменю удалено",
"originalRequest": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"status\": true,\r\n \"message\": \"The submenu has been deleted\"\r\n}"
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
},
{
"name": "dish",
"item": [
{
"name": "Просмотр списка блюд",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes"
]
}
},
"response": [
{
"name": "Выдача списка блюд",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "[\r\n {\r\n \"id\": \"602033b3-0462-4de1-a2f8-d8494795e0c0\",\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n }\r\n]"
}
]
},
{
"name": "Просмотр определенного блюда",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"response": [
{
"name": "Блюдо найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"602033b3-0462-4de1-a2f8-d8494795e0c0\",\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}"
},
{
"name": "Блюдо не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"dish not found\"\r\n}"
}
]
},
{
"name": "Создать блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 201 CREATED\r",
"pm.test(\"Status code is 201\", () => {\r",
" pm.response.to.have.status(201);\r",
"});\r",
"\r",
"postman.setEnvironmentVariable('api_test_dish_id', responseJSON.id);\r",
"\r",
"// check that 'api_test_dish_id' from environment & response are equal\r",
"pm.test(\"Response contains 'id' property\", () => {\r",
" pm.expect(pm.environment.get('api_test_dish_id')).to.eql(responseJSON.id);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes"
]
}
},
"response": [
{
"name": "Блюдо создано",
"originalRequest": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes"
]
}
},
"status": "Created",
"code": 201,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"602033b3-0462-4de1-a2f8-d8494795e0c0\",\r\n \"title\": \"My dish 1\",\r\n \"description\": \"My dish description 1\",\r\n \"price\": \"12.50\"\r\n}"
}
]
},
{
"name": "Обновить блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated dish 1\",\r\n \"description\": \"My updated dish description 1\",\r\n \"price\": \"14.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"response": [
{
"name": "Блюдо обновлено",
"originalRequest": {
"method": "PATCH",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"title\": \"My updated dish 1\",\r\n \"description\": \"My updated dish description 1\",\r\n \"price\": \"14.50\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"id\": \"602033b3-0462-4de1-a2f8-d8494795e0c0\",\r\n \"title\": \"My updated dish 1\",\r\n \"description\": \"My updated dish description 1\",\r\n \"price\": \"14.50\"\r\n}"
},
{
"name": "Блюдо не найдено",
"originalRequest": {
"method": "GET",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"status": "Not Found",
"code": 404,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"detail\": \"dish not found\"\r\n}"
}
]
},
{
"name": "Удалить блюдо",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const responseJSON = pm.response.json();\r",
"\r",
"// check that response status HTTP 200 OK\r",
"pm.test(\"Success answer\", function() {\r",
" pm.response.to.have.status(200);\r",
"});\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"response": [
{
"name": "Блюдо удалено",
"originalRequest": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{LOCAL_URL}}/api/v1/menus/{{api_test_menu_id}}/submenus/{{api_test_submenu_id}}/dishes/{{api_test_dish_id}}",
"host": [
"{{LOCAL_URL}}"
],
"path": [
"api",
"v1",
"menus",
"{{api_test_menu_id}}",
"submenus",
"{{api_test_submenu_id}}",
"dishes",
"{{api_test_dish_id}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": "{\r\n \"status\": true,\r\n \"message\": \"The dish has been deleted\"\r\n}"
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"// check that response headers 'content-type' is 'application/json'",
"pm.test(\"Content-Type header is application/json\", () => {",
" pm.expect(pm.response.headers.get('Content-Type')).to.eql('application/json');",
"});"
]
}
}
]
}
]
}
]
}