UNPKG

firebase-bolt

Version:

Firebase Bolt Security and Modeling Language Compiler

69 lines (67 loc) 8.08 kB
"use strict"; exports.__esModule = true; /* * Copyright 2015 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var rest = require("../firebase-rest"); var secrets = require('../../auth-secrets'); var chai_1 = require("chai"); var TEST_LOCATION = '/rest-test'; suite("Firebase REST Tests", function () { var client = new rest.Client(secrets.APP); suiteSetup(function () { var adminClient = new rest.Client(secrets.APP, secrets.SECRET); return adminClient.put(rest.RULES_LOCATION, { rules: { ".read": true, ".write": false, "rest-test": { ".write": true } } }); }); test("Read location", function () { return client.get(TEST_LOCATION); }); test("Write data", function () { var tests = [ { location: 'string', value: 'Hello, world.' }, { location: 'integer', value: 123 }, { location: 'number', value: 123.456 }, { location: 'boolean', value: false }, { location: 'object', value: { "this": 1, that: 'other' } }, { location: 'TIMESTAMP', value: rest.TIMESTAMP }, ]; var results = []; for (var i = 0; i < tests.length; i++) { var t = tests[i]; results.push(client.put(TEST_LOCATION + '/types/' + t.location, t.value)); } return Promise.all(results); }); test("Invalid location", function () { return client.get('../../illegal')["catch"](function (error) { return true; }); }); test("PushID", function () { var id1 = rest.generatePushID(); var id2 = rest.generatePushID(); chai_1.assert.equal(id1.length, 20); chai_1.assert.notEqual(id1, id2); }); }); //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZmlyZWJhc2UtcmVzdC10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCx1Q0FBeUM7QUFDekMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDNUMsNkJBQTRCO0FBRTVCLElBQUksYUFBYSxHQUFHLFlBQVksQ0FBQztBQUVqQyxLQUFLLENBQUMscUJBQXFCLEVBQUU7SUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQyxVQUFVLENBQUM7UUFDVCxJQUFJLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsY0FBYyxFQUNuQjtZQUNFLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsS0FBSztnQkFDZixXQUFXLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRTtRQUNwQixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2pCLElBQUksS0FBSyxHQUFHO1lBQ1YsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7WUFDOUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDbkMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDdEMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDckMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFDLE1BQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBQyxFQUFFO1lBQ3ZELEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtTQUNqRCxDQUFDO1FBQ0YsSUFBSSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMzRTtRQUNELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN2QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQy9CLE9BQUssQ0FBQSxDQUFDLFVBQVMsS0FBSztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQ2IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoQyxhQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsYUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0L2ZpcmViYXNlLXJlc3QtdGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0ICogYXMgcmVzdCBmcm9tICcuLi9maXJlYmFzZS1yZXN0JztcbmxldCBzZWNyZXRzID0gcmVxdWlyZSgnLi4vLi4vYXV0aC1zZWNyZXRzJyk7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSAnY2hhaSc7XG5cbmxldCBURVNUX0xPQ0FUSU9OID0gJy9yZXN0LXRlc3QnO1xuXG5zdWl0ZShcIkZpcmViYXNlIFJFU1QgVGVzdHNcIiwgZnVuY3Rpb24oKSB7XG4gIHZhciBjbGllbnQgPSBuZXcgcmVzdC5DbGllbnQoc2VjcmV0cy5BUFApO1xuXG4gIHN1aXRlU2V0dXAoZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFkbWluQ2xpZW50ID0gbmV3IHJlc3QuQ2xpZW50KHNlY3JldHMuQVBQLCBzZWNyZXRzLlNFQ1JFVCk7XG4gICAgcmV0dXJuIGFkbWluQ2xpZW50LnB1dChcbiAgICAgIHJlc3QuUlVMRVNfTE9DQVRJT04sXG4gICAgICB7XG4gICAgICAgIHJ1bGVzOiB7XG4gICAgICAgICAgXCIucmVhZFwiOiB0cnVlLFxuICAgICAgICAgIFwiLndyaXRlXCI6IGZhbHNlLFxuICAgICAgICAgIFwicmVzdC10ZXN0XCI6IHtcbiAgICAgICAgICAgIFwiLndyaXRlXCI6IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KFwiUmVhZCBsb2NhdGlvblwiLCBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gY2xpZW50LmdldChURVNUX0xPQ0FUSU9OKTtcbiAgfSk7XG5cbiAgdGVzdChcIldyaXRlIGRhdGFcIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRlc3RzID0gW1xuICAgICAgeyBsb2NhdGlvbjogJ3N0cmluZycsIHZhbHVlOiAnSGVsbG8sIHdvcmxkLicgfSxcbiAgICAgIHsgbG9jYXRpb246ICdpbnRlZ2VyJywgdmFsdWU6IDEyMyB9LFxuICAgICAgeyBsb2NhdGlvbjogJ251bWJlcicsIHZhbHVlOiAxMjMuNDU2IH0sXG4gICAgICB7IGxvY2F0aW9uOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSB9LFxuICAgICAgeyBsb2NhdGlvbjogJ29iamVjdCcsIHZhbHVlOiB7dGhpczogMSwgdGhhdDogJ290aGVyJ30gfSxcbiAgICAgIHsgbG9jYXRpb246ICdUSU1FU1RBTVAnLCB2YWx1ZTogcmVzdC5USU1FU1RBTVAgfSxcbiAgICBdO1xuICAgIHZhciByZXN1bHRzID0gPFByb21pc2U8c3RyaW5nPltdPltdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0ID0gdGVzdHNbaV07XG4gICAgICByZXN1bHRzLnB1c2goY2xpZW50LnB1dChURVNUX0xPQ0FUSU9OICsgJy90eXBlcy8nICsgdC5sb2NhdGlvbiwgdC52YWx1ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVzdWx0cyk7XG4gIH0pO1xuXG4gIHRlc3QoXCJJbnZhbGlkIGxvY2F0aW9uXCIsIGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBjbGllbnQuZ2V0KCcuLi8uLi9pbGxlZ2FsJylcbiAgICAgIC5jYXRjaChmdW5jdGlvbihlcnJvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KFwiUHVzaElEXCIsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBpZDEgPSByZXN0LmdlbmVyYXRlUHVzaElEKCk7XG4gICAgbGV0IGlkMiA9IHJlc3QuZ2VuZXJhdGVQdXNoSUQoKTtcbiAgICBhc3NlcnQuZXF1YWwoaWQxLmxlbmd0aCwgMjApO1xuICAgIGFzc2VydC5ub3RFcXVhbChpZDEsIGlkMik7XG4gIH0pO1xufSk7XG4iXX0=