Skip to content
Snippets Groups Projects
Commit 199a4db2 authored by Heinrich Lee Yu's avatar Heinrich Lee Yu :basketball: Committed by Heinrich Lee Yu
Browse files

Add schema tests

parent ddb1d326
No related branches found
No related tags found
No related merge requests found
Showing with 178 additions and 51 deletions
Loading
Loading
@@ -12,7 +12,7 @@ class IssuableSidebarEntity < Grape::Entity
expose :project_id do |issuable|
issuable.project.id
end
expose :discussion_locked?, as: :discussion_locked
expose :discussion_locked
expose :reference do |issuable|
issuable.to_reference(issuable.project, full: true)
end
Loading
Loading
{
"type": "object",
"properties" : {
"id": { "type": "integer" },
"delete_path": { "type": "string" }
},
"additionalProperties": false
}
Loading
Loading
@@ -2,20 +2,49 @@
"type": "object",
"properties" : {
"id": { "type": "integer" },
"iid": { "type": "integer" },
"subscribed": { "type": "boolean" },
"time_estimate": { "type": "integer" },
"total_time_spent": { "type": "integer" },
"human_time_estimate": { "type": ["integer", "null"] },
"human_total_time_spent": { "type": ["integer", "null"] },
"participants": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
"type": { "type": "string" },
"author_id": { "type": "integer" },
"project_id": { "type": "integer" },
"discussion_locked": { "type": ["boolean", "null"] },
"due_date": { "type": "date" },
"confidential": { "type": "boolean" },
"reference": { "type": "string" },
"current_user": {
"oneOf": [
{ "type": "null" },
{ "$ref": "user.json" }
]
},
"todo": {
"oneOf": [
{ "type": "null" },
{ "$ref": "issuable_sidebar_todo.json" }
]
},
"assignees": {
"milestone": {
"oneOf": [
{ "type": "null" },
{ "$ref": "../public_api/v4/milestone.json" }
]
},
"labels": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
}
},
"additionalProperties": false
"items": { "$ref": "label.json" }
},
"signed_in": { "type": "boolean" },
"can_edit": { "type": "boolean" },
"can_move": { "type": "boolean" },
"can_admin_label": { "type": "boolean" },
"issuable_json_path": { "type": "string" },
"namespace_path": { "type": "string" },
"project_path": { "type": "string" },
"project_full_path": { "type": "string" },
"project_issuables_path": { "type": "string" },
"create_todo_path": { "type": "string" },
"project_milestones_path": { "type": "string" },
"project_labels_path": { "type": "string" },
"toggle_subscription_path": { "type": "string" },
"move_issue_path": { "type": "string" },
"projects_autocomplete_path": { "type": "string" }
}
}
{
"type": "object",
"properties" : {
"subscribed": { "type": "boolean" },
"time_estimate": { "type": "integer" },
"total_time_spent": { "type": "integer" },
"human_time_estimate": { "type": ["integer", "null"] },
"human_total_time_spent": { "type": ["integer", "null"] },
"participants": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
},
"assignees": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
}
}
}
Loading
Loading
@@ -2,20 +2,52 @@
"type": "object",
"properties" : {
"id": { "type": "integer" },
"iid": { "type": "integer" },
"subscribed": { "type": "boolean" },
"time_estimate": { "type": "integer" },
"total_time_spent": { "type": "integer" },
"human_time_estimate": { "type": ["integer", "null"] },
"human_total_time_spent": { "type": ["integer", "null"] },
"participants": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
"type": { "type": "string" },
"author_id": { "type": "integer" },
"project_id": { "type": "integer" },
"discussion_locked": { "type": ["boolean", "null"] },
"reference": { "type": "string" },
"current_user": {
"oneOf": [
{ "type": "null" },
{ "$ref": "user.json" }
]
},
"todo": {
"oneOf": [
{ "type": "null" },
{ "$ref": "issuable_sidebar_todo.json" }
]
},
"milestone": {
"oneOf": [
{ "type": "null" },
{ "$ref": "../public_api/v4/milestones.json" }
]
},
"assignees": {
"labels": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
}
"items": { "$ref": "label.json" }
},
"assignee": {
"$ref": "../public_api/v4/user/basic.json"
},
"signed_in": { "type": "boolean" },
"can_edit": { "type": "boolean" },
"can_move": { "type": "boolean" },
"can_admin_label": { "type": "boolean" },
"can_merge": { "type": ["boolean", "null"] },
"issuable_json_path": { "type": "string" },
"namespace_path": { "type": "string" },
"project_path": { "type": "string" },
"project_full_path": { "type": "string" },
"project_issuables_path": { "type": "string" },
"create_todo_path": { "type": "string" },
"project_milestones_path": { "type": "string" },
"project_labels_path": { "type": "string" },
"toggle_subscription_path": { "type": "string" },
"move_issue_path": { "type": "string" },
"projects_autocomplete_path": { "type": "string" }
},
"additionalProperties": false
}
{
"type": "object",
"properties" : {
"id": { "type": "integer" },
"iid": { "type": "integer" },
"subscribed": { "type": "boolean" },
"time_estimate": { "type": "integer" },
"total_time_spent": { "type": "integer" },
"human_time_estimate": { "type": ["integer", "null"] },
"human_total_time_spent": { "type": ["integer", "null"] },
"participants": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
},
"assignees": {
"type": "array",
"items": { "$ref": "../public_api/v4/user/basic.json" }
}
},
"additionalProperties": false
}
{
"type": "object",
"properties" : {
"id": { "type": "integer" },
"iid": { "type": "integer" },
"project_id": { "type": ["integer", "null"] },
"group_id": { "type": ["integer", "null"] },
"title": { "type": "string" },
"description": { "type": ["string", "null"] },
"state": { "type": "string" },
"created_at": { "type": "date" },
"updated_at": { "type": "date" },
"start_date": { "type": "date" },
"due_date": { "type": "date" },
"web_url": { "type": "string" }
},
"required": [
"id", "iid", "title", "description", "state",
"state", "created_at", "updated_at", "start_date", "due_date"
],
"additionalProperties": false
}
{
"type": "array",
"items": {
"type": "object",
"properties" : {
"id": { "type": "integer" },
"iid": { "type": "integer" },
"project_id": { "type": ["integer", "null"] },
"group_id": { "type": ["integer", "null"] },
"title": { "type": "string" },
"description": { "type": ["string", "null"] },
"state": { "type": "string" },
"created_at": { "type": "date" },
"updated_at": { "type": "date" },
"start_date": { "type": "date" },
"due_date": { "type": "date" },
"web_url": { "type": "string" }
},
"required": [
"id", "iid", "title", "description", "state",
"state", "created_at", "updated_at", "start_date", "due_date"
],
"additionalProperties": false
"$ref": "./milestone.json"
}
}
Loading
Loading
@@ -18,13 +18,21 @@ describe IssueSerializer do
end
 
context 'sidebar issue serialization' do
let(:serializer) { 'sidebar_extras' }
let(:serializer) { 'sidebar' }
 
it 'matches sidebar issue json schema' do
it 'matches issue_sidebar json schema' do
expect(json_entity).to match_schema('entities/issue_sidebar')
end
end
 
context 'sidebar extras issue serialization' do
let(:serializer) { 'sidebar_extras' }
it 'matches issue_sidebar_extras json schema' do
expect(json_entity).to match_schema('entities/issue_sidebar_extras')
end
end
context 'board issue serialization' do
let(:serializer) { 'board' }
 
Loading
Loading
Loading
Loading
@@ -18,13 +18,21 @@ describe MergeRequestSerializer do
end
 
context 'sidebar merge request serialization' do
let(:serializer) { 'sidebar_extras' }
let(:serializer) { 'sidebar' }
 
it 'matches sidebar merge request json schema' do
it 'matches merge_request_sidebar json schema' do
expect(json_entity).to match_schema('entities/merge_request_sidebar')
end
end
 
context 'sidebar_extras merge request serialization' do
let(:serializer) { 'sidebar_extras' }
it 'matches merge_request_sidebar_extras json schema' do
expect(json_entity).to match_schema('entities/merge_request_sidebar_extras')
end
end
context 'basic merge request serialization' do
let(:serializer) { 'basic' }
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment