GraphQL: Nested File Upload (#6372)
* wip * wip * tested * wip * tested
This commit is contained in:
committed by
Antonio Davi Macedo Coelho de Castro
parent
df3fa029bc
commit
30a5aa0b61
@@ -9228,6 +9228,7 @@ describe('ParseGraphQLServer', () => {
|
||||
);
|
||||
|
||||
const someFieldValue = result.data.createFile.fileInfo.name;
|
||||
const someFieldObjectValue = result.data.createFile.fileInfo;
|
||||
|
||||
await apolloClient.mutate({
|
||||
mutation: gql`
|
||||
@@ -9253,17 +9254,25 @@ describe('ParseGraphQLServer', () => {
|
||||
|
||||
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
|
||||
|
||||
const createResult = await apolloClient.mutate({
|
||||
mutation: gql`
|
||||
const body2 = new FormData();
|
||||
body2.append(
|
||||
'operations',
|
||||
JSON.stringify({
|
||||
query: `
|
||||
mutation CreateSomeObject(
|
||||
$fields1: CreateSomeClassFieldsInput
|
||||
$fields2: CreateSomeClassFieldsInput
|
||||
$fields3: CreateSomeClassFieldsInput
|
||||
) {
|
||||
createSomeClass1: createSomeClass(
|
||||
input: { fields: $fields1 }
|
||||
) {
|
||||
someClass {
|
||||
id
|
||||
someField {
|
||||
name
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
createSomeClass2: createSomeClass(
|
||||
@@ -9271,20 +9280,79 @@ describe('ParseGraphQLServer', () => {
|
||||
) {
|
||||
someClass {
|
||||
id
|
||||
someField {
|
||||
name
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
createSomeClass3: createSomeClass(
|
||||
input: { fields: $fields3 }
|
||||
) {
|
||||
someClass {
|
||||
id
|
||||
someField {
|
||||
name
|
||||
url
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
variables: {
|
||||
fields1: {
|
||||
someField: someFieldValue,
|
||||
`,
|
||||
variables: {
|
||||
fields1: {
|
||||
someField: { file: someFieldValue },
|
||||
},
|
||||
fields2: {
|
||||
someField: {
|
||||
file: {
|
||||
name: someFieldObjectValue.name,
|
||||
url: someFieldObjectValue.url,
|
||||
__type: 'File',
|
||||
},
|
||||
},
|
||||
},
|
||||
fields3: {
|
||||
someField: { upload: null },
|
||||
},
|
||||
},
|
||||
fields2: {
|
||||
someField: someFieldValue.name,
|
||||
},
|
||||
},
|
||||
})
|
||||
);
|
||||
body2.append(
|
||||
'map',
|
||||
JSON.stringify({ 1: ['variables.fields3.someField.upload'] })
|
||||
);
|
||||
body2.append('1', 'My File Content', {
|
||||
filename: 'myFileName.txt',
|
||||
contentType: 'text/plain',
|
||||
});
|
||||
|
||||
res = await fetch('http://localhost:13377/graphql', {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: body2,
|
||||
});
|
||||
expect(res.status).toEqual(200);
|
||||
const result2 = JSON.parse(await res.text());
|
||||
expect(
|
||||
result2.data.createSomeClass1.someClass.someField.name
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
expect(
|
||||
result2.data.createSomeClass1.someClass.someField.url
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
expect(
|
||||
result2.data.createSomeClass2.someClass.someField.name
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
expect(
|
||||
result2.data.createSomeClass2.someClass.someField.url
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
expect(
|
||||
result2.data.createSomeClass3.someClass.someField.name
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
expect(
|
||||
result2.data.createSomeClass3.someClass.someField.url
|
||||
).toEqual(jasmine.stringMatching(/_myFileName.txt$/));
|
||||
|
||||
const schema = await new Parse.Schema('SomeClass').get();
|
||||
expect(schema.fields.someField.type).toEqual('File');
|
||||
|
||||
@@ -9324,7 +9392,7 @@ describe('ParseGraphQLServer', () => {
|
||||
}
|
||||
`,
|
||||
variables: {
|
||||
id: createResult.data.createSomeClass1.someClass.id,
|
||||
id: result2.data.createSomeClass1.someClass.id,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -9335,8 +9403,8 @@ describe('ParseGraphQLServer', () => {
|
||||
expect(getResult.data.someClass.someField.url).toEqual(
|
||||
result.data.createFile.fileInfo.url
|
||||
);
|
||||
expect(getResult.data.findSomeClass1.edges.length).toEqual(1);
|
||||
expect(getResult.data.findSomeClass2.edges.length).toEqual(1);
|
||||
expect(getResult.data.findSomeClass1.edges.length).toEqual(3);
|
||||
expect(getResult.data.findSomeClass2.edges.length).toEqual(3);
|
||||
|
||||
res = await fetch(getResult.data.someClass.someField.url);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user