blob: 9a0eb2af617042fac7ae708ad9d55b34176b2d0c [file]
// 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.
'use strict';
var helpers = require('../../helpers/integration');
var harness = helpers.harness(__filename);
var nano = harness.locals.nano;
var Nano = helpers.Nano;
var it = harness.it;
var admin = Nano(helpers.admin);
var cookie;
var server;
it('should be able to setup admin and login', function(assert) {
nano.relax({
method : 'PUT',
path: '_config/admins/' + helpers.username,
body: helpers.password
}, function(err) {
assert.equal(err, null, 'should create admin');
nano.auth(helpers.username, helpers.password, function(err, _, headers) {
assert.equal(err, null, 'should have logged in successfully');
assert.ok(headers['set-cookie'],
'response should have a set-cookie header');
cookie = headers['set-cookie'];
assert.end();
});
});
});
it('should be able to insert with a cookie', function(assert) {
server = Nano({
url: helpers.couch,
cookie: cookie
});
var db = server.use('shared_cookie');
db.insert({'foo': 'baz'}, null, function(error, response) {
assert.equal(error, null, 'should have stored value');
assert.equal(response.ok, true, 'response should be ok');
assert.ok(response.rev, 'response should have rev');
assert.end();
});
});
it('should be able to get the session', function(assert) {
server.session(function(error, session) {
assert.equal(error, null, 'should have gotten the session');
assert.equal(session.userCtx.name, helpers.username);
assert.end();
});
});
it('must restore admin parteh mode for other tests', function(assert) {
admin.relax({
method: 'DELETE',
path: '_config/admins/' + helpers.username
}, function(err) {
assert.equal(err, null, 'should have deleted admin user');
assert.end();
});
});