@@ -98,3 +98,61 @@ upsert {
98
98
require .NoError (t , err )
99
99
require .Contains (t , res , "Ashish" )
100
100
}
101
+
102
+ func TestUpsertExample0JSON (t * testing.T ) {
103
+ require .NoError (t , dropAll ())
104
+ require .NoError (t , alterSchema (`email: string @index(exact) .` ))
105
+
106
+ // Mutation with wrong name
107
+ m1 := `
108
+ {
109
+ "query": "{me(func: eq(email, \"[email protected] \")) {v as uid}}",
110
+ "set": [
111
+ {
112
+ "uid": "uid(v)",
113
+ "name": "Wrong"
114
+ },
115
+ {
116
+ "uid": "uid(v)",
117
+
118
+ }
119
+ ]
120
+ }`
121
+ keys , _ , _ , err := mutationWithTs (m1 , "application/json" , false , true , true , 0 )
122
+ require .NoError (t , err )
123
+ require .True (t , len (keys ) == 0 )
124
+
125
+ // query should return the wrong name
126
+ q1 := `
127
+ {
128
+ q(func: has(email)) {
129
+ uid
130
+ name
131
+ email
132
+ }
133
+ }`
134
+ res , _ , err := queryWithTs (q1 , "application/graphql+-" , 0 )
135
+ require .NoError (t , err )
136
+ require .Contains (t , res , "Wrong" )
137
+
138
+ // mutation with correct name
139
+ m2 := `
140
+ {
141
+ "query": "{me(func: eq(email, \"[email protected] \")) {v as uid}}",
142
+ "set": [
143
+ {
144
+ "uid": "uid(v)",
145
+ "name": "Ashish"
146
+ }
147
+ ]
148
+ }`
149
+ keys , preds , _ , err := mutationWithTs (m2 , "application/json" , false , true , true , 0 )
150
+ require .NoError (t , err )
151
+ require .True (t , len (keys ) == 0 )
152
+ require .True (t , contains (preds , "name" ))
153
+
154
+ // query should return correct name
155
+ res , _ , err = queryWithTs (q1 , "application/graphql+-" , 0 )
156
+ require .NoError (t , err )
157
+ require .Contains (t , res , "Ashish" )
158
+ }
0 commit comments