this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

format JSON test cases (#933)

authored by

bnewbold and committed by
GitHub
ae849136 9f7ea1d5

+947 -576
+39 -35
atproto/lexicon/testdata/catalog/query.json
··· 8 8 "type": "query", 9 9 "description": "a query type", 10 10 "parameters": { 11 - "type": "params", 12 - "description": "a params type", 13 - "required": ["string"], 14 - "properties": { 15 - "boolean": { 16 - "type": "boolean", 17 - "description": "field of type boolean" 18 - }, 19 - "integer": { 20 - "type": "integer", 21 - "description": "field of type integer" 22 - }, 23 - "string": { 24 - "type": "string", 25 - "description": "field of type string" 26 - }, 27 - "handle": { 28 - "type": "string", 29 - "format": "handle", 30 - "description": "field of type string, format handle" 31 - }, 32 - "unknown": { 33 - "type": "unknown", 34 - "description": "field of type unknown" 35 - }, 36 - "array": { 37 - "type": "array", 38 - "description": "field of type array", 39 - "items": { "type": "integer" } 11 + "type": "params", 12 + "description": "a params type", 13 + "required": [ 14 + "string" 15 + ], 16 + "properties": { 17 + "boolean": { 18 + "type": "boolean", 19 + "description": "field of type boolean" 20 + }, 21 + "integer": { 22 + "type": "integer", 23 + "description": "field of type integer" 24 + }, 25 + "string": { 26 + "type": "string", 27 + "description": "field of type string" 28 + }, 29 + "handle": { 30 + "type": "string", 31 + "format": "handle", 32 + "description": "field of type string, format handle" 33 + }, 34 + "unknown": { 35 + "type": "unknown", 36 + "description": "field of type unknown" 37 + }, 38 + "array": { 39 + "type": "array", 40 + "description": "field of type array", 41 + "items": { 42 + "type": "integer" 40 43 } 41 44 } 45 + } 42 46 }, 43 47 "output": { 44 48 "description": "output body type", ··· 46 50 "schema": { 47 51 "type": "object", 48 52 "properties": { 49 - "a": { 50 - "type": "integer" 51 - }, 52 - "b": { 53 - "type": "integer" 54 - } 53 + "a": { 54 + "type": "integer" 55 + }, 56 + "b": { 57 + "type": "integer" 58 + } 55 59 } 56 60 } 57 61 },
+232 -205
atproto/lexicon/testdata/catalog/record.json
··· 9 9 "key": "literal:demo", 10 10 "description": "a record type with many field", 11 11 "record": { 12 - "required": [ "integer" ], 13 - "nullable": [ "nullableString" ], 12 + "required": [ 13 + "integer" 14 + ], 15 + "nullable": [ 16 + "nullableString" 17 + ], 14 18 "properties": { 15 - "null": { 16 - "type": "null", 17 - "description": "field of type null" 19 + "null": { 20 + "type": "null", 21 + "description": "field of type null" 22 + }, 23 + "boolean": { 24 + "type": "boolean", 25 + "description": "field of type boolean" 26 + }, 27 + "integer": { 28 + "type": "integer", 29 + "description": "field of type integer" 30 + }, 31 + "string": { 32 + "type": "string", 33 + "description": "field of type string" 34 + }, 35 + "nullableString": { 36 + "type": "string", 37 + "description": "field of type string; value is nullable" 38 + }, 39 + "bytes": { 40 + "type": "bytes", 41 + "description": "field of type bytes" 42 + }, 43 + "cid-link": { 44 + "type": "cid-link", 45 + "description": "field of type cid-link" 46 + }, 47 + "blob": { 48 + "type": "blob", 49 + "description": "field of type blob" 50 + }, 51 + "unknown": { 52 + "type": "unknown", 53 + "description": "field of type unknown" 54 + }, 55 + "array": { 56 + "type": "array", 57 + "description": "field of type array", 58 + "items": { 59 + "type": "integer" 60 + } 61 + }, 62 + "object": { 63 + "type": "object", 64 + "description": "field of type null", 65 + "properties": { 66 + "a": { 67 + "type": "integer" 68 + }, 69 + "b": { 70 + "type": "integer" 71 + } 72 + } 73 + }, 74 + "ref": { 75 + "type": "ref", 76 + "description": "field of type ref", 77 + "ref": "example.lexicon.record#demoToken" 78 + }, 79 + "union": { 80 + "type": "union", 81 + "refs": [ 82 + "example.lexicon.record#demoObject", 83 + "example.lexicon.record#demoObjectTwo" 84 + ] 85 + }, 86 + "formats": { 87 + "type": "ref", 88 + "ref": "example.lexicon.record#stringFormats" 89 + }, 90 + "constInteger": { 91 + "type": "integer", 92 + "const": 42 93 + }, 94 + "defaultInteger": { 95 + "type": "integer", 96 + "default": 42 97 + }, 98 + "enumInteger": { 99 + "type": "integer", 100 + "enum": [ 101 + 4, 102 + 9, 103 + 16, 104 + 25 105 + ] 106 + }, 107 + "rangeInteger": { 108 + "type": "integer", 109 + "minimum": 10, 110 + "maximum": 20 111 + }, 112 + "lenString": { 113 + "type": "string", 114 + "minLength": 10, 115 + "maxLength": 20 116 + }, 117 + "graphemeString": { 118 + "type": "string", 119 + "minGraphemes": 10, 120 + "maxGraphemes": 20 121 + }, 122 + "enumString": { 123 + "type": "string", 124 + "enum": [ 125 + "fish", 126 + "tree", 127 + "rock" 128 + ] 129 + }, 130 + "knownString": { 131 + "type": "string", 132 + "knownValues": [ 133 + "blue", 134 + "green", 135 + "red" 136 + ] 137 + }, 138 + "sizeBytes": { 139 + "type": "bytes", 140 + "minLength": 10, 141 + "maxLength": 20 142 + }, 143 + "lenArray": { 144 + "type": "array", 145 + "items": { 146 + "type": "integer" 18 147 }, 19 - "boolean": { 20 - "type": "boolean", 21 - "description": "field of type boolean" 22 - }, 23 - "integer": { 24 - "type": "integer", 25 - "description": "field of type integer" 26 - }, 27 - "string": { 28 - "type": "string", 29 - "description": "field of type string" 30 - }, 31 - "nullableString": { 32 - "type": "string", 33 - "description": "field of type string; value is nullable" 34 - }, 35 - "bytes": { 36 - "type": "bytes", 37 - "description": "field of type bytes" 38 - }, 39 - "cid-link": { 40 - "type": "cid-link", 41 - "description": "field of type cid-link" 42 - }, 43 - "blob": { 44 - "type": "blob", 45 - "description": "field of type blob" 46 - }, 47 - "unknown": { 48 - "type": "unknown", 49 - "description": "field of type unknown" 50 - }, 51 - "array": { 52 - "type": "array", 53 - "description": "field of type array", 54 - "items": { "type": "integer" } 55 - }, 56 - "object": { 57 - "type": "object", 58 - "description": "field of type null", 59 - "properties": { 60 - "a": { "type": "integer" }, 61 - "b": { "type": "integer" } 62 - } 63 - }, 64 - "ref": { 65 - "type": "ref", 66 - "description": "field of type ref", 67 - "ref": "example.lexicon.record#demoToken" 68 - }, 69 - "union": { 70 - "type": "union", 71 - "refs": [ 72 - "example.lexicon.record#demoObject", 73 - "example.lexicon.record#demoObjectTwo" 74 - ] 75 - }, 76 - "formats": { 77 - "type": "ref", 78 - "ref": "example.lexicon.record#stringFormats" 79 - }, 80 - "constInteger": { 81 - "type": "integer", 82 - "const": 42 83 - }, 84 - "defaultInteger": { 85 - "type": "integer", 86 - "default": 42 87 - }, 88 - "enumInteger": { 89 - "type": "integer", 90 - "enum": [4, 9, 16, 25] 91 - }, 92 - "rangeInteger": { 93 - "type": "integer", 94 - "minimum": 10, 95 - "maximum": 20 96 - }, 97 - "lenString": { 98 - "type": "string", 99 - "minLength": 10, 100 - "maxLength": 20 101 - }, 102 - "graphemeString": { 103 - "type": "string", 104 - "minGraphemes": 10, 105 - "maxGraphemes": 20 106 - }, 107 - "enumString": { 108 - "type": "string", 109 - "enum": ["fish", "tree", "rock"] 110 - }, 111 - "knownString": { 112 - "type": "string", 113 - "knownValues": ["blue", "green", "red"] 114 - }, 115 - "sizeBytes": { 116 - "type": "bytes", 117 - "minLength": 10, 118 - "maxLength": 20 119 - }, 120 - "lenArray": { 121 - "type": "array", 122 - "items": { "type": "integer" }, 123 - "minLength": 2, 124 - "maxLength": 5 125 - }, 126 - "sizeBlob": { 127 - "type": "blob", 128 - "maxSize": 20 129 - }, 130 - "acceptBlob": { 131 - "type": "blob", 132 - "accept": [ "image/*" ] 133 - }, 134 - "closedUnion": { 135 - "type": "union", 136 - "refs": [ 137 - "example.lexicon.record#demoObject" 138 - ], 139 - "closed": true 140 - } 148 + "minLength": 2, 149 + "maxLength": 5 150 + }, 151 + "sizeBlob": { 152 + "type": "blob", 153 + "maxSize": 20 154 + }, 155 + "acceptBlob": { 156 + "type": "blob", 157 + "accept": [ 158 + "image/*" 159 + ] 160 + }, 161 + "closedUnion": { 162 + "type": "union", 163 + "refs": [ 164 + "example.lexicon.record#demoObject" 165 + ], 166 + "closed": true 167 + } 141 168 } 142 169 } 143 170 }, 144 171 "stringFormats": { 145 - "type": "object", 146 - "description": "all the various string format types", 147 - "properties": { 148 - "did": { 149 - "type": "string", 150 - "format": "did", 151 - "description": "a did string" 152 - }, 153 - "handle": { 154 - "type": "string", 155 - "format": "handle", 156 - "description": "a did string" 157 - }, 158 - "atidentifier": { 159 - "type": "string", 160 - "format": "at-identifier", 161 - "description": "an at-identifier string" 162 - }, 163 - "nsid": { 164 - "type": "string", 165 - "format": "nsid", 166 - "description": "an nsid string" 167 - }, 168 - "aturi": { 169 - "type": "string", 170 - "format": "at-uri", 171 - "description": "an at-uri string" 172 - }, 173 - "cid": { 174 - "type": "string", 175 - "format": "cid", 176 - "description": "a cid string (not a cid-link)" 177 - }, 178 - "datetime": { 179 - "type": "string", 180 - "format": "datetime", 181 - "description": "a datetime string" 182 - }, 183 - "language": { 184 - "type": "string", 185 - "format": "language", 186 - "description": "a language string" 187 - }, 188 - "uri": { 189 - "type": "string", 190 - "format": "uri", 191 - "description": "a generic URI field" 192 - }, 193 - "tid": { 194 - "type": "string", 195 - "format": "tid", 196 - "description": "a generic TID field" 197 - }, 198 - "recordkey": { 199 - "type": "string", 200 - "format": "record-key", 201 - "description": "a generic record-key field" 202 - } 172 + "type": "object", 173 + "description": "all the various string format types", 174 + "properties": { 175 + "did": { 176 + "type": "string", 177 + "format": "did", 178 + "description": "a did string" 179 + }, 180 + "handle": { 181 + "type": "string", 182 + "format": "handle", 183 + "description": "a did string" 184 + }, 185 + "atidentifier": { 186 + "type": "string", 187 + "format": "at-identifier", 188 + "description": "an at-identifier string" 189 + }, 190 + "nsid": { 191 + "type": "string", 192 + "format": "nsid", 193 + "description": "an nsid string" 194 + }, 195 + "aturi": { 196 + "type": "string", 197 + "format": "at-uri", 198 + "description": "an at-uri string" 199 + }, 200 + "cid": { 201 + "type": "string", 202 + "format": "cid", 203 + "description": "a cid string (not a cid-link)" 204 + }, 205 + "datetime": { 206 + "type": "string", 207 + "format": "datetime", 208 + "description": "a datetime string" 209 + }, 210 + "language": { 211 + "type": "string", 212 + "format": "language", 213 + "description": "a language string" 214 + }, 215 + "uri": { 216 + "type": "string", 217 + "format": "uri", 218 + "description": "a generic URI field" 219 + }, 220 + "tid": { 221 + "type": "string", 222 + "format": "tid", 223 + "description": "a generic TID field" 224 + }, 225 + "recordkey": { 226 + "type": "string", 227 + "format": "record-key", 228 + "description": "a generic record-key field" 203 229 } 230 + } 204 231 }, 205 232 "demoToken": { 206 - "type": "token", 207 - "description": "an example of what a token looks like" 233 + "type": "token", 234 + "description": "an example of what a token looks like" 208 235 }, 209 236 "demoObject": { 210 - "type": "object", 211 - "description": "smaller object schema for unions", 212 - "properties": { 213 - "a": { 214 - "type": "integer" 215 - }, 216 - "b": { 217 - "type": "integer" 218 - } 237 + "type": "object", 238 + "description": "smaller object schema for unions", 239 + "properties": { 240 + "a": { 241 + "type": "integer" 242 + }, 243 + "b": { 244 + "type": "integer" 219 245 } 246 + } 220 247 }, 221 248 "demoObjectTwo": { 222 - "type": "object", 223 - "description": "smaller object schema for unions", 224 - "properties": { 225 - "c": { 226 - "type": "integer" 227 - }, 228 - "d": { 229 - "type": "integer" 230 - } 249 + "type": "object", 250 + "description": "smaller object schema for unions", 251 + "properties": { 252 + "c": { 253 + "type": "integer" 254 + }, 255 + "d": { 256 + "type": "integer" 231 257 } 258 + } 232 259 } 233 260 } 234 261 }
+18 -10
atproto/lexicon/testdata/lexicon-invalid.json
··· 1 1 [ 2 - { 2 + { 3 3 "name": "invalid lexicon field", 4 4 "lexicon": { 5 - "lexicon": "one", 6 - "id": "example.lexicon", 7 - "defs": { "demo": { "type": "integer" } } 5 + "lexicon": "one", 6 + "id": "example.lexicon", 7 + "defs": { 8 + "demo": { 9 + "type": "integer" 10 + } 11 + } 8 12 } 9 - }, 10 - { 13 + }, 14 + { 11 15 "name": "invalid id field", 12 16 "lexicon": { 13 - "lexicon": 1, 14 - "id": 2, 15 - "defs": { "demo": { "type": "integer" } } 17 + "lexicon": 1, 18 + "id": 2, 19 + "defs": { 20 + "demo": { 21 + "type": "integer" 22 + } 23 + } 16 24 } 17 - } 25 + } 18 26 ]
+9 -5
atproto/lexicon/testdata/lexicon-valid.json
··· 1 1 [ 2 - { 2 + { 3 3 "name": "minimal", 4 4 "lexicon": { 5 - "lexicon": 1, 6 - "id": "example.lexicon", 7 - "defs": { "demo": { "type": "integer" } } 5 + "lexicon": 1, 6 + "id": "example.lexicon", 7 + "defs": { 8 + "demo": { 9 + "type": "integer" 10 + } 11 + } 8 12 } 9 - } 13 + } 10 14 ]
+539 -219
atproto/lexicon/testdata/record-data-invalid.json
··· 1 1 [ 2 - { "name": "missing required field", 3 - "rkey": "demo", 4 - "data": { "$type": "example.lexicon.record" } 5 - }, 6 - { "name": "invalid null field", 7 - "rkey": "demo", 8 - "data": { "$type": "example.lexicon.record", "integer": 1, "null": true } }, 9 - { "name": "invalid boolean field", 10 - "rkey": "demo", 11 - "data": { "$type": "example.lexicon.record", "integer": 1, "boolean": "green"} }, 12 - { "name": "invalid integer field", 13 - "rkey": "demo", 14 - "data": { "$type": "example.lexicon.record", "integer": 1, "integer": "green"} }, 15 - { "name": "invalid non-nullable string field", 16 - "rkey": "demo", 17 - "data": { "$type": "example.lexicon.record", "integer": 1, "string": null } }, 18 - { "name": "invalid string field", 19 - "rkey": "demo", 20 - "data": { "$type": "example.lexicon.record", "integer": 1, "string": 2 } }, 21 - { "name": "invalid bytes field", 22 - "rkey": "demo", 23 - "data": { "$type": "example.lexicon.record", "integer": 1, "bytes": "green" } }, 24 - { "name": "invalid bytes: empty object", 25 - "rkey": "demo", 26 - "data": { "$type": "example.lexicon.record", "integer": 1, "bytes": {}}}, 27 - { "name": "invalid bytes: wrong type", 28 - "rkey": "demo", 29 - "data": { "$type": "example.lexicon.record", "integer": 1, "bytes": { 2 + { 3 + "name": "missing required field", 4 + "rkey": "demo", 5 + "data": { 6 + "$type": "example.lexicon.record" 7 + } 8 + }, 9 + { 10 + "name": "invalid null field", 11 + "rkey": "demo", 12 + "data": { 13 + "$type": "example.lexicon.record", 14 + "integer": 1, 15 + "null": true 16 + } 17 + }, 18 + { 19 + "name": "invalid boolean field", 20 + "rkey": "demo", 21 + "data": { 22 + "$type": "example.lexicon.record", 23 + "integer": 1, 24 + "boolean": "green" 25 + } 26 + }, 27 + { 28 + "name": "invalid integer field", 29 + "rkey": "demo", 30 + "data": { 31 + "$type": "example.lexicon.record", 32 + "integer": "green" 33 + } 34 + }, 35 + { 36 + "name": "invalid non-nullable string field", 37 + "rkey": "demo", 38 + "data": { 39 + "$type": "example.lexicon.record", 40 + "integer": 1, 41 + "string": null 42 + } 43 + }, 44 + { 45 + "name": "invalid string field", 46 + "rkey": "demo", 47 + "data": { 48 + "$type": "example.lexicon.record", 49 + "integer": 1, 50 + "string": 2 51 + } 52 + }, 53 + { 54 + "name": "invalid bytes field", 55 + "rkey": "demo", 56 + "data": { 57 + "$type": "example.lexicon.record", 58 + "integer": 1, 59 + "bytes": "green" 60 + } 61 + }, 62 + { 63 + "name": "invalid bytes: empty object", 64 + "rkey": "demo", 65 + "data": { 66 + "$type": "example.lexicon.record", 67 + "integer": 1, 68 + "bytes": {} 69 + } 70 + }, 71 + { 72 + "name": "invalid bytes: wrong type", 73 + "rkey": "demo", 74 + "data": { 75 + "$type": "example.lexicon.record", 76 + "integer": 1, 77 + "bytes": { 30 78 "bytes": "asdfasdfasdfasdf" 31 - }}}, 32 - { "name": "invalid cid-link field", 33 - "rkey": "demo", 34 - "data": { "$type": "example.lexicon.record", "integer": 1, "cid-link": "green" } }, 35 - { "name": "invalid blob field", 36 - "rkey": "demo", 37 - "data": { "$type": "example.lexicon.record", "integer": 1, "blob": "green" } }, 38 - { "name": "invalid blob: wrong type", 39 - "rkey": "demo", 40 - "data": { "$type": "example.lexicon.record", "integer": 1, "blob": { 41 - "type": "blob", 42 - "size": 123, 43 - "mimeType": false, 44 - "ref": { 45 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 46 - } 47 - }}}, 48 - { "name": "invalid array", 49 - "rkey": "demo", 50 - "data": { "$type": "example.lexicon.record", "integer": 1, "array": 123 } 51 - }, 52 - { "name": "invalid array element", 53 - "rkey": "demo", 54 - "data": { "$type": "example.lexicon.record", "integer": 1, "array": [true, false] } 55 - }, 56 - { "name": "object wrong data type", 57 - "rkey": "demo", 58 - "data": { "$type": "example.lexicon.record", "integer": 1, "object": 123 } 59 - }, 60 - { "name": "object nested wrong data type", 61 - "rkey": "demo", 62 - "data": { "$type": "example.lexicon.record", "integer": 1, "object": {"a": "not-a-number" } } 63 - }, 64 - { "name": "invalid token ref type", 65 - "rkey": "demo", 66 - "data": { "$type": "example.lexicon.record", "integer": 1, "ref": 123 } 67 - }, 68 - { "name": "invalid ref value", 69 - "rkey": "demo", 70 - "data": { "$type": "example.lexicon.record", "integer": 1, "ref": "example.lexicon.record#wrongToken" } 71 - }, 72 - { "name": "invalid string format handle", 73 - "rkey": "demo", 74 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "handle": "123" } } 75 - }, 76 - { "name": "invalid string format did", 77 - "rkey": "demo", 78 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "did": "123" } } 79 - }, 80 - { "name": "invalid string format atidentifier", 81 - "rkey": "demo", 82 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "atidentifier": "123" } } 83 - }, 84 - { "name": "invalid string format nsid", 85 - "rkey": "demo", 86 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "nsid": "123" } } 87 - }, 88 - { "name": "invalid string format aturi", 89 - "rkey": "demo", 90 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "aturi": "123" } } 91 - }, 92 - { "name": "invalid string format cid", 93 - "rkey": "demo", 94 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "cid": "123" } } 95 - }, 96 - { "name": "invalid string format datetime", 97 - "rkey": "demo", 98 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "datetime": "123" } } 99 - }, 100 - { "name": "invalid string format language", 101 - "rkey": "demo", 102 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "language": "123" } } 103 - }, 104 - { "name": "invalid string format uri", 105 - "rkey": "demo", 106 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "uri": "123" } } 107 - }, 108 - { "name": "invalid string format tid", 109 - "rkey": "demo", 110 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "tid": "000" } } 111 - }, 112 - { "name": "invalid string format recordkey", 113 - "rkey": "demo", 114 - "data": { "$type": "example.lexicon.record", "integer": 1, "formats": { "recordkey": "." } } 115 - }, 116 - { "name": "wrong const value", 117 - "rkey": "demo", 118 - "data": { "$type": "example.lexicon.record", "integer": 1, "constInteger": 41 } 119 - }, 120 - { "name": "integer not in enum", 121 - "rkey": "demo", 122 - "data": { "$type": "example.lexicon.record", "integer": 1, "enumInteger": 7 } 123 - }, 124 - { "name": "out of integer range", 125 - "rkey": "demo", 126 - "data": { "$type": "example.lexicon.record", "integer": 1, "rangeInteger": 9000 } 127 - }, 128 - { "name": "string too short", 129 - "rkey": "demo", 130 - "data": { "$type": "example.lexicon.record", "integer": 1, "lenString": "." } 131 - }, 132 - { "name": "string too long", 133 - "rkey": "demo", 134 - "data": { "$type": "example.lexicon.record", "integer": 1, "lenString": "abcdefg-abcdefg-abcdefg" } 135 - }, 136 - { "name": "string too short (graphemes)", 137 - "rkey": "demo", 138 - "data": { "$type": "example.lexicon.record", "integer": 1, "graphemeString": "👩‍👩‍👦‍👦👩‍👩‍👦‍👦" } 139 - }, 140 - { "name": "string too long (graphemes)", 141 - "rkey": "demo", 142 - "data": { "$type": "example.lexicon.record", "integer": 1, "graphemeString": "abcdefg-abcdefg-abcdefg" } 143 - }, 144 - { "name": "out of enum string", 145 - "rkey": "demo", 146 - "data": { "$type": "example.lexicon.record", "integer": 1, "enumString": "unexpected" } 147 - }, 148 - { "name": "bytes too short", 149 - "rkey": "demo", 150 - "data": { "$type": "example.lexicon.record", "integer": 1, "sizeBytes": { "$bytes": "b25l" }} 151 - }, 152 - { "name": "bytes too long", 153 - "rkey": "demo", 154 - "data": { "$type": "example.lexicon.record", "integer": 1, "sizeBytes": { "$bytes": "b25lb25lb25lb25lb25lb25lb25lb25lb25lb25lb25l" }} 155 - }, 156 - { "name": "array too short", 157 - "rkey": "demo", 158 - "data": { "$type": "example.lexicon.record", "integer": 1, "lenArray": [0]} 159 - }, 160 - { "name": "array too long", 161 - "rkey": "demo", 162 - "data": { "$type": "example.lexicon.record", "integer": 1, "lenArray": [0,0,0,0,0,0,0,0,0,0]} 163 - }, 164 - { "name": "blob too large", 165 - "rkey": "demo", 166 - "data": { "$type": "example.lexicon.record", "integer": 1, "sizeBlob": { 167 - "$type": "blob", 168 - "size": 12345, 169 - "mimeType": "text/plain", 170 - "ref": { 171 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 172 - } 173 - }}}, 174 - { "name": "blob wrong type", 175 - "rkey": "demo", 176 - "data": { "$type": "example.lexicon.record", "integer": 1, "acceptBlob": { 177 - "$type": "blob", 178 - "size": 12345, 179 - "mimeType": "text/plain", 180 - "ref": { 181 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 182 - } 183 - }}}, 184 - { "name": "open union wrong data type", 185 - "rkey": "demo", 186 - "data": { "$type": "example.lexicon.record", "integer": 1, "union": 123 } 187 - }, 188 - { "name": "open union missing $type", 189 - "rkey": "demo", 190 - "data": { "$type": "example.lexicon.record", "integer": 1, "union": {"a": 1, "b": 2 } } 191 - }, 192 - { "name": "out of closed union", 193 - "rkey": "demo", 194 - "data": { "$type": "example.lexicon.record", "integer": 1, "closedUnion": { "$type": "example.unknown-lexicon.blah", "a": 1 } } 195 - }, 196 - { "name": "union inner invalid", 197 - "rkey": "demo", 198 - "data": { "$type": "example.lexicon.record", "integer": 1, "closedUnion": { "$type": "example.lexicon.record#demoObjectTwo", "a": 1 } } 199 - }, 200 - { "name": "union inner invalid", 201 - "rkey": "demo", 202 - "data": { "$type": "example.lexicon.record", "integer": 1, "union": { "$type": "example.lexicon.record#demoObject", "a": "not-a-number" } } 203 - }, 204 - { "name": "unknown wrong type (bool)", 205 - "rkey": "demo", 206 - "data": { "$type": "example.lexicon.record", "unknown": false } 207 - }, 208 - { "name": "unknown wrong type (bytes)", 209 - "rkey": "demo", 210 - "data": { "$type": "example.lexicon.record", "unknown": { "$bytes": "123" } } 211 - }, 212 - { "name": "unknown wrong type (blob)", 213 - "rkey": "demo", 214 - "data": { "$type": "example.lexicon.record", "unknown": { 215 - "$type": "blob", 216 - "mimeType": "text/plain", 217 - "size": 12345, 218 - "ref": { 219 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 220 - } 221 - }} 79 + } 80 + } 81 + }, 82 + { 83 + "name": "invalid cid-link field", 84 + "rkey": "demo", 85 + "data": { 86 + "$type": "example.lexicon.record", 87 + "integer": 1, 88 + "cid-link": "green" 89 + } 90 + }, 91 + { 92 + "name": "invalid blob field", 93 + "rkey": "demo", 94 + "data": { 95 + "$type": "example.lexicon.record", 96 + "integer": 1, 97 + "blob": "green" 98 + } 99 + }, 100 + { 101 + "name": "invalid blob: wrong type", 102 + "rkey": "demo", 103 + "data": { 104 + "$type": "example.lexicon.record", 105 + "integer": 1, 106 + "blob": { 107 + "type": "blob", 108 + "size": 123, 109 + "mimeType": false, 110 + "ref": { 111 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 112 + } 113 + } 114 + } 115 + }, 116 + { 117 + "name": "invalid array", 118 + "rkey": "demo", 119 + "data": { 120 + "$type": "example.lexicon.record", 121 + "integer": 1, 122 + "array": 123 123 + } 124 + }, 125 + { 126 + "name": "invalid array element", 127 + "rkey": "demo", 128 + "data": { 129 + "$type": "example.lexicon.record", 130 + "integer": 1, 131 + "array": [ 132 + true, 133 + false 134 + ] 135 + } 136 + }, 137 + { 138 + "name": "object wrong data type", 139 + "rkey": "demo", 140 + "data": { 141 + "$type": "example.lexicon.record", 142 + "integer": 1, 143 + "object": 123 144 + } 145 + }, 146 + { 147 + "name": "object nested wrong data type", 148 + "rkey": "demo", 149 + "data": { 150 + "$type": "example.lexicon.record", 151 + "integer": 1, 152 + "object": { 153 + "a": "not-a-number" 154 + } 222 155 } 156 + }, 157 + { 158 + "name": "invalid token ref type", 159 + "rkey": "demo", 160 + "data": { 161 + "$type": "example.lexicon.record", 162 + "integer": 1, 163 + "ref": 123 164 + } 165 + }, 166 + { 167 + "name": "invalid ref value", 168 + "rkey": "demo", 169 + "data": { 170 + "$type": "example.lexicon.record", 171 + "integer": 1, 172 + "ref": "example.lexicon.record#wrongToken" 173 + } 174 + }, 175 + { 176 + "name": "invalid string format handle", 177 + "rkey": "demo", 178 + "data": { 179 + "$type": "example.lexicon.record", 180 + "integer": 1, 181 + "formats": { 182 + "handle": "123" 183 + } 184 + } 185 + }, 186 + { 187 + "name": "invalid string format did", 188 + "rkey": "demo", 189 + "data": { 190 + "$type": "example.lexicon.record", 191 + "integer": 1, 192 + "formats": { 193 + "did": "123" 194 + } 195 + } 196 + }, 197 + { 198 + "name": "invalid string format atidentifier", 199 + "rkey": "demo", 200 + "data": { 201 + "$type": "example.lexicon.record", 202 + "integer": 1, 203 + "formats": { 204 + "atidentifier": "123" 205 + } 206 + } 207 + }, 208 + { 209 + "name": "invalid string format nsid", 210 + "rkey": "demo", 211 + "data": { 212 + "$type": "example.lexicon.record", 213 + "integer": 1, 214 + "formats": { 215 + "nsid": "123" 216 + } 217 + } 218 + }, 219 + { 220 + "name": "invalid string format aturi", 221 + "rkey": "demo", 222 + "data": { 223 + "$type": "example.lexicon.record", 224 + "integer": 1, 225 + "formats": { 226 + "aturi": "123" 227 + } 228 + } 229 + }, 230 + { 231 + "name": "invalid string format cid", 232 + "rkey": "demo", 233 + "data": { 234 + "$type": "example.lexicon.record", 235 + "integer": 1, 236 + "formats": { 237 + "cid": "123" 238 + } 239 + } 240 + }, 241 + { 242 + "name": "invalid string format datetime", 243 + "rkey": "demo", 244 + "data": { 245 + "$type": "example.lexicon.record", 246 + "integer": 1, 247 + "formats": { 248 + "datetime": "123" 249 + } 250 + } 251 + }, 252 + { 253 + "name": "invalid string format language", 254 + "rkey": "demo", 255 + "data": { 256 + "$type": "example.lexicon.record", 257 + "integer": 1, 258 + "formats": { 259 + "language": "123" 260 + } 261 + } 262 + }, 263 + { 264 + "name": "invalid string format uri", 265 + "rkey": "demo", 266 + "data": { 267 + "$type": "example.lexicon.record", 268 + "integer": 1, 269 + "formats": { 270 + "uri": "123" 271 + } 272 + } 273 + }, 274 + { 275 + "name": "invalid string format tid", 276 + "rkey": "demo", 277 + "data": { 278 + "$type": "example.lexicon.record", 279 + "integer": 1, 280 + "formats": { 281 + "tid": "000" 282 + } 283 + } 284 + }, 285 + { 286 + "name": "invalid string format recordkey", 287 + "rkey": "demo", 288 + "data": { 289 + "$type": "example.lexicon.record", 290 + "integer": 1, 291 + "formats": { 292 + "recordkey": "." 293 + } 294 + } 295 + }, 296 + { 297 + "name": "wrong const value", 298 + "rkey": "demo", 299 + "data": { 300 + "$type": "example.lexicon.record", 301 + "integer": 1, 302 + "constInteger": 41 303 + } 304 + }, 305 + { 306 + "name": "integer not in enum", 307 + "rkey": "demo", 308 + "data": { 309 + "$type": "example.lexicon.record", 310 + "integer": 1, 311 + "enumInteger": 7 312 + } 313 + }, 314 + { 315 + "name": "out of integer range", 316 + "rkey": "demo", 317 + "data": { 318 + "$type": "example.lexicon.record", 319 + "integer": 1, 320 + "rangeInteger": 9000 321 + } 322 + }, 323 + { 324 + "name": "string too short", 325 + "rkey": "demo", 326 + "data": { 327 + "$type": "example.lexicon.record", 328 + "integer": 1, 329 + "lenString": "." 330 + } 331 + }, 332 + { 333 + "name": "string too long", 334 + "rkey": "demo", 335 + "data": { 336 + "$type": "example.lexicon.record", 337 + "integer": 1, 338 + "lenString": "abcdefg-abcdefg-abcdefg" 339 + } 340 + }, 341 + { 342 + "name": "string too short (graphemes)", 343 + "rkey": "demo", 344 + "data": { 345 + "$type": "example.lexicon.record", 346 + "integer": 1, 347 + "graphemeString": "👩‍👩‍👦‍👦👩‍👩‍👦‍👦" 348 + } 349 + }, 350 + { 351 + "name": "string too long (graphemes)", 352 + "rkey": "demo", 353 + "data": { 354 + "$type": "example.lexicon.record", 355 + "integer": 1, 356 + "graphemeString": "abcdefg-abcdefg-abcdefg" 357 + } 358 + }, 359 + { 360 + "name": "out of enum string", 361 + "rkey": "demo", 362 + "data": { 363 + "$type": "example.lexicon.record", 364 + "integer": 1, 365 + "enumString": "unexpected" 366 + } 367 + }, 368 + { 369 + "name": "bytes too short", 370 + "rkey": "demo", 371 + "data": { 372 + "$type": "example.lexicon.record", 373 + "integer": 1, 374 + "sizeBytes": { 375 + "$bytes": "b25l" 376 + } 377 + } 378 + }, 379 + { 380 + "name": "bytes too long", 381 + "rkey": "demo", 382 + "data": { 383 + "$type": "example.lexicon.record", 384 + "integer": 1, 385 + "sizeBytes": { 386 + "$bytes": "b25lb25lb25lb25lb25lb25lb25lb25lb25lb25lb25l" 387 + } 388 + } 389 + }, 390 + { 391 + "name": "array too short", 392 + "rkey": "demo", 393 + "data": { 394 + "$type": "example.lexicon.record", 395 + "integer": 1, 396 + "lenArray": [ 397 + 0 398 + ] 399 + } 400 + }, 401 + { 402 + "name": "array too long", 403 + "rkey": "demo", 404 + "data": { 405 + "$type": "example.lexicon.record", 406 + "integer": 1, 407 + "lenArray": [ 408 + 0, 409 + 0, 410 + 0, 411 + 0, 412 + 0, 413 + 0, 414 + 0, 415 + 0, 416 + 0, 417 + 0 418 + ] 419 + } 420 + }, 421 + { 422 + "name": "blob too large", 423 + "rkey": "demo", 424 + "data": { 425 + "$type": "example.lexicon.record", 426 + "integer": 1, 427 + "sizeBlob": { 428 + "$type": "blob", 429 + "size": 12345, 430 + "mimeType": "text/plain", 431 + "ref": { 432 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 433 + } 434 + } 435 + } 436 + }, 437 + { 438 + "name": "blob wrong type", 439 + "rkey": "demo", 440 + "data": { 441 + "$type": "example.lexicon.record", 442 + "integer": 1, 443 + "acceptBlob": { 444 + "$type": "blob", 445 + "size": 12345, 446 + "mimeType": "text/plain", 447 + "ref": { 448 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 449 + } 450 + } 451 + } 452 + }, 453 + { 454 + "name": "open union wrong data type", 455 + "rkey": "demo", 456 + "data": { 457 + "$type": "example.lexicon.record", 458 + "integer": 1, 459 + "union": 123 460 + } 461 + }, 462 + { 463 + "name": "open union missing $type", 464 + "rkey": "demo", 465 + "data": { 466 + "$type": "example.lexicon.record", 467 + "integer": 1, 468 + "union": { 469 + "a": 1, 470 + "b": 2 471 + } 472 + } 473 + }, 474 + { 475 + "name": "out of closed union", 476 + "rkey": "demo", 477 + "data": { 478 + "$type": "example.lexicon.record", 479 + "integer": 1, 480 + "closedUnion": { 481 + "$type": "example.unknown-lexicon.blah", 482 + "a": 1 483 + } 484 + } 485 + }, 486 + { 487 + "name": "union inner invalid", 488 + "rkey": "demo", 489 + "data": { 490 + "$type": "example.lexicon.record", 491 + "integer": 1, 492 + "closedUnion": { 493 + "$type": "example.lexicon.record#demoObjectTwo", 494 + "a": 1 495 + } 496 + } 497 + }, 498 + { 499 + "name": "union inner invalid", 500 + "rkey": "demo", 501 + "data": { 502 + "$type": "example.lexicon.record", 503 + "integer": 1, 504 + "union": { 505 + "$type": "example.lexicon.record#demoObject", 506 + "a": "not-a-number" 507 + } 508 + } 509 + }, 510 + { 511 + "name": "unknown wrong type (bool)", 512 + "rkey": "demo", 513 + "data": { 514 + "$type": "example.lexicon.record", 515 + "unknown": false 516 + } 517 + }, 518 + { 519 + "name": "unknown wrong type (bytes)", 520 + "rkey": "demo", 521 + "data": { 522 + "$type": "example.lexicon.record", 523 + "unknown": { 524 + "$bytes": "123" 525 + } 526 + } 527 + }, 528 + { 529 + "name": "unknown wrong type (blob)", 530 + "rkey": "demo", 531 + "data": { 532 + "$type": "example.lexicon.record", 533 + "unknown": { 534 + "$type": "blob", 535 + "mimeType": "text/plain", 536 + "size": 12345, 537 + "ref": { 538 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 539 + } 540 + } 541 + } 542 + } 223 543 ]
+110 -102
atproto/lexicon/testdata/record-data-valid.json
··· 1 1 [ 2 - { 3 - "name": "minimal", 4 - "rkey": "demo", 5 - "data": { 6 - "$type": "example.lexicon.record", 7 - "integer": 1 2 + { 3 + "name": "minimal", 4 + "rkey": "demo", 5 + "data": { 6 + "$type": "example.lexicon.record", 7 + "integer": 1 8 + } 9 + }, 10 + { 11 + "name": "full", 12 + "rkey": "demo", 13 + "data": { 14 + "$type": "example.lexicon.record", 15 + "null": null, 16 + "boolean": true, 17 + "integer": 3, 18 + "string": "blah", 19 + "nullableString": null, 20 + "bytes": { 21 + "$bytes": "123" 22 + }, 23 + "cidlink": { 24 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 25 + }, 26 + "blob": { 27 + "$type": "blob", 28 + "mimeType": "text/plain", 29 + "size": 12345, 30 + "ref": { 31 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 8 32 } 9 - }, 10 - { 11 - "name": "full", 12 - "rkey": "demo", 13 - "data": { 14 - "$type": "example.lexicon.record", 15 - "null": null, 16 - "boolean": true, 17 - "integer": 3, 18 - "string": "blah", 19 - "nullableString": null, 20 - "bytes": { 21 - "$bytes": "123" 22 - }, 23 - "cidlink": { 24 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 25 - }, 26 - "blob": { 27 - "$type": "blob", 28 - "mimeType": "text/plain", 29 - "size": 12345, 30 - "ref": { 31 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 32 - } 33 - }, 34 - "unknown": { 35 - "a": "alphabet", 36 - "b": 3 37 - }, 38 - "array": [1,2,3], 39 - "object": { 40 - "a": 1, 41 - "b": 2 42 - }, 43 - "ref": "example.lexicon.record#demoToken", 44 - "union": { 45 - "$type": "example.lexicon.record#demoObject", 46 - "a": 1, 47 - "b": 2 48 - }, 49 - "formats": { 50 - "did": "did:web:example.com", 51 - "handle": "handle.example.com", 52 - "atidentifier": "handle.example.com", 53 - "aturi": "at://handle.example.com/com.example.nsid/asdf123", 54 - "nsid": "com.example.nsid", 55 - "cid": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq", 56 - "datetime": "2023-10-30T22:25:23Z", 57 - "language": "en", 58 - "tid": "3kznmn7xqxl22", 59 - "recordkey": "simple" 60 - }, 61 - "constInteger": 42, 62 - "defaultInteger": 123, 63 - "enumInteger": 16, 64 - "rangeInteger": 16, 65 - "lenString": "1234567890ABC", 66 - "graphemeString": "🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈", 67 - "enumString": "fish", 68 - "knownString": "blue", 69 - "sizeBytes": { 70 - "$bytes": "asdfasdfasdfasdf" 71 - }, 72 - "lenArray": [1,2,3], 73 - "sizeBlob": { 74 - "$type": "blob", 75 - "mimeType": "text/plain", 76 - "size": 8, 77 - "ref": { 78 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 79 - } 80 - }, 81 - "acceptBlob": { 82 - "$type": "blob", 83 - "mimeType": "image/png", 84 - "size": 12345, 85 - "ref": { 86 - "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 87 - } 88 - }, 89 - "closedUnion": { 90 - "$type": "example.lexicon.record#demoObject", 91 - "a": 1 92 - } 33 + }, 34 + "unknown": { 35 + "a": "alphabet", 36 + "b": 3 37 + }, 38 + "array": [ 39 + 1, 40 + 2, 41 + 3 42 + ], 43 + "object": { 44 + "a": 1, 45 + "b": 2 46 + }, 47 + "ref": "example.lexicon.record#demoToken", 48 + "union": { 49 + "$type": "example.lexicon.record#demoObject", 50 + "a": 1, 51 + "b": 2 52 + }, 53 + "formats": { 54 + "did": "did:web:example.com", 55 + "handle": "handle.example.com", 56 + "atidentifier": "handle.example.com", 57 + "aturi": "at://handle.example.com/com.example.nsid/asdf123", 58 + "nsid": "com.example.nsid", 59 + "cid": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq", 60 + "datetime": "2023-10-30T22:25:23Z", 61 + "language": "en", 62 + "tid": "3kznmn7xqxl22", 63 + "recordkey": "simple" 64 + }, 65 + "constInteger": 42, 66 + "defaultInteger": 123, 67 + "enumInteger": 16, 68 + "rangeInteger": 16, 69 + "lenString": "1234567890ABC", 70 + "graphemeString": "🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈🇩🇪🏳️‍🌈", 71 + "enumString": "fish", 72 + "knownString": "blue", 73 + "sizeBytes": { 74 + "$bytes": "asdfasdfasdfasdf" 75 + }, 76 + "lenArray": [ 77 + 1, 78 + 2, 79 + 3 80 + ], 81 + "sizeBlob": { 82 + "$type": "blob", 83 + "mimeType": "text/plain", 84 + "size": 8, 85 + "ref": { 86 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 93 87 } 94 - }, 95 - { 96 - "name": "unknown as a type", 97 - "rkey": "demo", 98 - "data": { 99 - "$type": "example.lexicon.record", 100 - "integer": 1, 101 - "unknown": { 102 - "$type": "example.lexicon.record#demoObject", 103 - "a": 1, 104 - "b": 2 105 - } 88 + }, 89 + "acceptBlob": { 90 + "$type": "blob", 91 + "mimeType": "image/png", 92 + "size": 12345, 93 + "ref": { 94 + "$link": "bafyreiclp443lavogvhj3d2ob2cxbfuscni2k5jk7bebjzg7khl3esabwq" 106 95 } 96 + }, 97 + "closedUnion": { 98 + "$type": "example.lexicon.record#demoObject", 99 + "a": 1 100 + } 107 101 } 102 + }, 103 + { 104 + "name": "unknown as a type", 105 + "rkey": "demo", 106 + "data": { 107 + "$type": "example.lexicon.record", 108 + "integer": 1, 109 + "unknown": { 110 + "$type": "example.lexicon.record#demoObject", 111 + "a": 1, 112 + "b": 2 113 + } 114 + } 115 + } 108 116 ]