blob: 6777ec56ecb6a912adbb2548ad7c87a01c03f19a [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
library syncbase_app_test;
import 'package:test/test.dart';
import 'package:syncbase/syncbase_client.dart' show SyncbaseClient;
import './utils.dart' as utils;
runAppTests(SyncbaseClient c) {
test('getting a handle to an app', () {
var appName = utils.uniqueName('app');
var app = c.app(appName);
expect(app.name, equals(appName));
expect(app.fullName, equals(appName));
});
test('creating and destroying an app', () async {
var appName = utils.uniqueName('app');
var app = c.app(appName);
expect(await app.exists(), equals(false));
await app.create(utils.emptyPerms());
expect(await app.exists(), equals(true));
await app.destroy();
expect(await app.exists(), equals(false));
});
test('listing apps', () async {
var appName = utils.uniqueName('app');
await c.app(appName).create(utils.emptyPerms());
var apps = await c.listApps();
// NOTE(aghassemi): Since the Syncbase instance is shared between all tests,
// we will get a lot more than just 1 app, so we simply verify that our
// appName is in the returned list.
expect(apps.length, greaterThan(0));
var ourApp = apps.firstWhere((e) => e.name == appName);
expect(ourApp.name, equals(appName));
});
test('listing databases', () async {
var appName = utils.uniqueName('app');
var app = c.app(appName);
await app.create(utils.emptyPerms());
var dbNames = [utils.uniqueName('db1'), utils.uniqueName('db2')];
dbNames.sort();
for (var dbName in dbNames) {
await app.noSqlDatabase(dbName).create(utils.emptyPerms());
}
var dbs = await app.listDatabases();
dbs.sort((d1, d2) => d1.name.compareTo(d2.name));
expect(dbs.length, equals(dbNames.length));
for (var i = 0; i < dbNames.length; i++) {
expect(dbs[i].name, equals(dbNames[i]));
}
});
// TODO(nlacasse): Test app.get/setPermissions.
}