UNPKG

@girin/framework

Version:

Core modules for Girin: GraphQL server framework

66 lines 3.39 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 }); const fs_1 = require("fs"); const ObjectStorage_1 = require("../core/ObjectStorage"); function testObjectStorageSpec(mod) { return __awaiter(this, void 0, void 0, function* () { const fileBuffer = fs_1.readFileSync('./LICENSE'); const fileString = fileBuffer.toString(); // should save data to a file and returns the id as string const { id: storageObjectId } = yield mod.save('test', 'myfile', fs_1.createReadStream('./LICENSE')); if (typeof storageObjectId !== 'string') { throw new Error(`should retrieve fileId which type is string: but got ${storageObjectId}`); } const { id: nextObjectId } = yield mod.save('test', 'myfile', fs_1.createReadStream('./LICENSE')); if (storageObjectId === nextObjectId) { throw new Error('should generate unique id for every object'); } // should refetch the data with its id const storageObject = yield mod.get('test', storageObjectId); if (storageObject.filename !== 'myfile') { throw new Error(`Expected filename to be myfile but got ${storageObject.filename}`); } if (storageObject.contentLength !== fileBuffer.byteLength) { throw new Error(`Expected contentLength to be ${fileBuffer.byteLength} but got ${storageObject.contentLength}`); } const dataStream = storageObject.open(); const dataString = yield new Promise((resolve, reject) => { let dataString = ''; dataStream.on('data', (buffer) => { dataString += buffer.toString(); }); dataStream.once('end', () => resolve(dataString)); dataStream.once('error', err => reject(err)); }); if (dataString !== fileString) { throw new Error(`refetched data should be equal to the original. expected ${fileString} but got ${dataString}`); } // deleting object yield mod.delete('test', storageObjectId); let error = null; // opening id with no corresponding object should raise error try { yield mod.get('test', storageObjectId); } catch (e) { error = e; } if (!error) { throw new Error(`expected to get error but got ${error}`); } const expectedError = new ObjectStorage_1.StorageObjectNotFoundError(storageObjectId); if (error.message !== expectedError.message) { throw new Error(`Expected error message to be ${expectedError.message} but got ${error.message}`); } }); } exports.testObjectStorageSpec = testObjectStorageSpec; //# sourceMappingURL=ObjectStorage.spec.js.map