Files
jspg/fixtures/stems.json

1188 lines
41 KiB
JSON

[
{
"description": "Stem Engine Unit Tests",
"database": {
"puncs": [],
"enums": [],
"relations": [
{
"id": "rel1",
"type": "relation",
"constraint": "fk_contact_entity",
"source_type": "contact",
"source_columns": [
"entity_id"
],
"destination_type": "person",
"destination_columns": [
"id"
],
"prefix": null
},
{
"id": "rel2",
"type": "relation",
"constraint": "fk_relationship_target",
"source_type": "relationship",
"source_columns": [
"target_id",
"target_type"
],
"destination_type": "entity",
"destination_columns": [
"id",
"type"
],
"prefix": "target"
}
],
"types": [
{
"name": "entity",
"hierarchy": [
"entity"
],
"schemas": [
{
"$id": "entity",
"type": "object",
"properties": {}
}
]
},
{
"name": "person",
"hierarchy": [
"person",
"entity"
],
"schemas": [
{
"$id": "person",
"$ref": "entity",
"properties": {}
}
]
},
{
"name": "email_address",
"hierarchy": [
"email_address",
"entity"
],
"schemas": [
{
"$id": "email_address",
"$ref": "entity",
"properties": {}
}
]
},
{
"name": "phone_number",
"hierarchy": [
"phone_number",
"entity"
],
"schemas": [
{
"$id": "phone_number",
"$ref": "entity",
"properties": {}
}
]
},
{
"name": "relationship",
"relationship": true,
"hierarchy": [
"relationship",
"entity"
],
"schemas": [
{
"$id": "relationship",
"$ref": "entity",
"properties": {}
}
]
},
{
"name": "contact",
"relationship": true,
"hierarchy": [
"contact",
"relationship",
"entity"
],
"schemas": [
{
"$id": "contact",
"$ref": "relationship",
"properties": {
"target": {
"oneOf": [
{
"$ref": "phone_number"
},
{
"$ref": "email_address"
}
]
}
}
}
]
},
{
"name": "save_person",
"schemas": [
{
"$id": "save_person.response",
"$ref": "person",
"properties": {
"contacts": {
"type": "array",
"items": {
"$ref": "contact"
}
}
}
}
]
}
]
},
"tests": [
{
"description": "correctly squashes deep oneOf refs through array paths",
"action": "compile",
"expect": {
"success": true,
"stems": {
"contact": {
"": {
"schema": {
"$family": null,
"$id": "contact",
"$ref": "relationship",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {
"target": {
"$family": null,
"$id": null,
"$ref": null,
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": [
{
"$family": null,
"$id": null,
"$ref": "phone_number",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
{
"$family": null,
"$id": null,
"$ref": "email_address",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
}
],
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
}
},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "contact"
},
"target#(type==\"email_address\")": {
"relation": "target_id",
"schema": {
"$family": null,
"$id": "email_address",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "email_address"
},
"target#(type==\"phone_number\")": {
"relation": "target_id",
"schema": {
"$family": null,
"$id": "phone_number",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "phone_number"
}
},
"email_address": {
"": {
"schema": {
"$family": null,
"$id": "email_address",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "email_address"
}
},
"entity": {
"": {
"schema": {
"$family": null,
"$id": "entity",
"$ref": null,
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": "object",
"uniqueItems": null
},
"type": "entity"
}
},
"person": {
"": {
"schema": {
"$family": null,
"$id": "person",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "person"
}
},
"phone_number": {
"": {
"schema": {
"$family": null,
"$id": "phone_number",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "phone_number"
}
},
"relationship": {
"": {
"schema": {
"$family": null,
"$id": "relationship",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "relationship"
}
},
"save_person.response": {
"": {
"schema": {
"$family": null,
"$id": "save_person.response",
"$ref": "person",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {
"contacts": {
"$family": null,
"$id": null,
"$ref": null,
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": {
"$family": null,
"$id": null,
"$ref": "contact",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": "array",
"uniqueItems": null
}
},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "person"
},
"contacts.#": {
"relation": "contacts_id",
"schema": {
"$family": null,
"$id": "contact",
"$ref": "relationship",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {
"target": {
"$family": null,
"$id": null,
"$ref": null,
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": [
{
"$family": null,
"$id": null,
"$ref": "phone_number",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
{
"$family": null,
"$id": null,
"$ref": "email_address",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
}
],
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": null,
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
}
},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "contact"
},
"contacts.#.target#(type==\"email_address\")": {
"relation": "target_id",
"schema": {
"$family": null,
"$id": "email_address",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "email_address"
},
"contacts.#.target#(type==\"phone_number\")": {
"relation": "target_id",
"schema": {
"$family": null,
"$id": "phone_number",
"$ref": "entity",
"actions": null,
"additionalProperties": null,
"allOf": null,
"computer": null,
"const": null,
"contains": null,
"control": null,
"dependencies": null,
"description": null,
"display": null,
"else": null,
"enum": null,
"enumNames": null,
"exclusiveMaximum": null,
"exclusiveMinimum": null,
"extensible": null,
"form": null,
"format": null,
"if": null,
"items": null,
"maxContains": null,
"maxItems": null,
"maxLength": null,
"maxProperties": null,
"maximum": null,
"minContains": null,
"minItems": null,
"minLength": null,
"minProperties": null,
"minimum": null,
"multipleOf": null,
"not": null,
"oneOf": null,
"pattern": null,
"patternProperties": null,
"prefixItems": null,
"properties": {},
"propertyNames": null,
"required": null,
"then": null,
"title": null,
"type": null,
"uniqueItems": null
},
"type": "phone_number"
}
}
}
}
}
]
}
]