-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdataschema.js
120 lines (101 loc) · 3.21 KB
/
dataschema.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/// metaData key is a generic key-value pair supplied by them
// bson 16mb limit
// mongo Id 12 byte
// TS -> 1 - 1000 TC
// TC -> 1 - 400 VTs
// VT -> 1 - 2000 VP
// Test Suite Collection Schema
{
id: String,
isSuccessful: Boolean,
test_cases_ref: String[],
metaData: Object // Ex: { author: ahmed, xxx: yyy }
validation_tag_ref: String[]
}
// Test Case Collection Schema
{
id: String,
isSuccessful: Boolean,
parent: {
testSuite: {
id: String
}
}
validation_tag_ref: String[]
metaData: Object // Ex: { author: ahmed, xxx: yyy }
}
// Validation Tag Collection Schema
{
id: String,
isSuccessful: Boolean,
parent: {
// optional
test_case: {
id: String,
},
test_suite: {
id: String,
},
}
validation_point_ref: String[],
metaData: Object // Ex: { author: ahmed, xxx: yyy }
}
// Validation Point Collection Schema
{
id: String
type: String, "DUT"
parent: {
test_case: {
id: String,
},
test_suite: {
id: String,
},
validation_tag: {
id: String,
}
}
body: Object // An object that is not bound to a certain depth where each depth (or level) contain arbitrary named keys
// except 'metaData' is reserved for having a object value about the metaData of this depth (or level)
// the deepest object must include a result key which has a value similar to what is specified below
// result should be
// result: {
// expected: Number
// tolerance: Number
// actual: Number
// status: Boolean
// }
//
// Example: body: {
// instance: {
// metaData: {
// xyz: 'something about the instance'
// },
// rx: {
// metaData: {},
// result: {
// expected: 1,
// tolerance: 0,
// actual: 1,
// status: True
// }
// },
// tx: {
// metaData: {},
// result: {
// ...
// }
// },
// xyz: {
// metaData: {},
// zzz: {
// metaData: {},
// result: {
// ...
// }
// }
// }
// }
// }
metaData: Object // Ex: { author: ahmed, xxx: yyy }
}