UNPKG

@girin/framework

Version:

Core modules for Girin: GraphQL server framework

65 lines 3.44 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); function testFrameworkDatastoreSpec(datastore, TypeA, TypeB) { return __awaiter(this, void 0, void 0, function* () { // inserting const typeAObject = new TypeA(); typeAObject.foo = 'foo'; const typeBObject = new TypeB(); typeBObject.bar = 'bar'; let savedTypeAObject = yield datastore.save(typeAObject); let savedTypeBObject = yield datastore.save(typeBObject); if (savedTypeAObject instanceof TypeA && savedTypeBObject instanceof TypeB) { } else { throw new Error('Object returned by `save()` method should have same type of its first argument'); } if (savedTypeAObject.id && savedTypeBObject.id) { } else { console.log(savedTypeAObject, savedTypeBObject); throw new Error('Saved record should have `id` property'); } // getting by id let fetchedTypeAObject = yield datastore.get(TypeA, savedTypeAObject.id); let fetchedTypeBObject = yield datastore.get(TypeB, savedTypeBObject.id); if (fetchedTypeAObject instanceof TypeA && fetchedTypeBObject instanceof TypeB) { } else { throw new Error('Object returned by `getById()` method should be an instance of its first argument'); } // finding by predicate const typeAObjectWithFooField = yield datastore.find(TypeA, { foo: 'foo' }); if (typeAObjectWithFooField && typeAObjectWithFooField.foo === 'foo') { } else { throw new Error('Datastore should retrieve saved value by get query'); } if (typeAObjectWithFooField instanceof TypeA) { } else { throw new Error('Object returned by `get()` method should be an instance of its first argument'); } // update typeAObject.foo = 'foo2'; const updatedTypeAObject = yield datastore.save(typeAObject); if (updatedTypeAObject.foo === 'foo2') { } else { throw new Error(`Saved object should haved updated value "foo2" but got "${updatedTypeAObject.foo}"`); } let shouldBeNull = yield datastore.find(TypeA, { foo: 'bar' }); if (shouldBeNull !== null) { throw new Error(`Datastore should return null when no record matched: but got ${shouldBeNull}`); } yield datastore.delete(TypeA, typeAObjectWithFooField.id); shouldBeNull = yield datastore.get(TypeA, typeAObjectWithFooField.id); if (shouldBeNull !== null) { throw new Error('Datastore `deleteById` method should delete the record corresponding to the given id'); } }); } exports.testFrameworkDatastoreSpec = testFrameworkDatastoreSpec; //# sourceMappingURL=FrameworkDatastore.spec.js.map