From f6eb0b96e64d9c9168fddbb955eab492e10e3254 Mon Sep 17 00:00:00 2001 From: Matthew Irish Date: Wed, 12 Dec 2018 16:22:26 -0600 Subject: [PATCH] unskip some tests and add a test for jwt config --- .../components/mount-backend-form-test.js | 55 +++++++++++++++++-- 1 file changed, 49 insertions(+), 6 deletions(-) diff --git a/ui/tests/integration/components/mount-backend-form-test.js b/ui/tests/integration/components/mount-backend-form-test.js index 41b2a943448d..47f20d505275 100644 --- a/ui/tests/integration/components/mount-backend-form-test.js +++ b/ui/tests/integration/components/mount-backend-form-test.js @@ -1,5 +1,5 @@ import { later, run } from '@ember/runloop'; -import { module, test, skip } from 'qunit'; +import { module, test } from 'qunit'; import { setupRenderingTest } from 'ember-qunit'; import { render, settled } from '@ember/test-helpers'; import apiStub from 'vault/tests/helpers/noop-all-api-requests'; @@ -18,7 +18,7 @@ module('Integration | Component | mount backend form', function(hooks) { hooks.beforeEach(function() { component.setContext(this); this.owner.lookup('service:flash-messages').registerTypes(['success', 'danger']); - this.server = apiStub({ usePassthrough: true }); + this.server = apiStub(); }); hooks.afterEach(function() { @@ -55,17 +55,59 @@ module('Integration | Component | mount backend form', function(hooks) { assert.equal(component.pathValue, 'newpath', 'updates to the value of the type'); }); - skip('it calls mount success', async function(assert) { + test('it calls mount success', async function(assert) { + this.server.post('/v1/sys/auth/foo', request => { + return [204, { 'Content-Type': 'application/json' }]; + }); const spy = sinon.spy(); this.set('onMountSuccess', spy); await render(hbs`{{mount-backend-form onMountSuccess=onMountSuccess}}`); await component.mount('approle', 'foo'); - assert.equal(this.server.db.authMethods.length, 1, 'it enables an auth method'); + + later(() => run.cancelTimers(), 50); + await settled(); + let enableRequest = this.server.handledRequests.findBy('url', '/v1/sys/auth/foo'); + assert.ok(enableRequest, 'it calls enable on an auth method'); assert.ok(spy.calledOnce, 'calls the passed success method'); }); - skip('it calls mount config error', async function(assert) { + test('it calls the correct jwt config', async function(assert) { + this.server.post('/v1/sys/auth/jwt', request => { + return [204, { 'Content-Type': 'application/json' }]; + }); + + this.server.post('/v1/auth/jwt/config', request => { + return [ + 400, + { 'Content-Type': 'application/json' }, + JSON.stringify({ errors: ['there was an error'] }), + ]; + }); + await render(hbs``); + + await component.selectType('jwt'); + await component.next(); + await component.fillIn('oidcDiscoveryUrl', 'host'); + component.submit(); + + later(() => run.cancelTimers(), 50); + await settled(); + let configRequest = this.server.handledRequests.findBy('url', '/v1/auth/jwt/config'); + assert.ok(configRequest, 'it calls the config url'); + }); + + test('it calls mount config error', async function(assert) { + this.server.post('/v1/sys/auth/bar', request => { + return [204, { 'Content-Type': 'application/json' }]; + }); + this.server.post('/v1/auth/bar/config', request => { + return [ + 400, + { 'Content-Type': 'application/json' }, + JSON.stringify({ errors: ['there was an error'] }), + ]; + }); const spy = sinon.spy(); const spy2 = sinon.spy(); this.set('onMountSuccess', spy); @@ -79,7 +121,8 @@ module('Integration | Component | mount backend form', function(hooks) { component.submit(); later(() => run.cancelTimers(), 50); await settled(); - assert.equal(this.server.db.authMethods.length, 1, 'it still enables an auth method'); + let enableRequest = this.server.handledRequests.findBy('url', '/v1/sys/auth/bar'); + assert.ok(enableRequest, 'it calls enable on an auth method'); assert.equal(spy.callCount, 0, 'does not call the success method'); assert.ok(spy2.calledOnce, 'calls the passed error method'); });