diff --git a/backend/internal/jobqueue/main_test.go b/backend/internal/jobqueue/main_test.go
index 8a781d3c..bebdc7d1 100644
--- a/backend/internal/jobqueue/main_test.go
+++ b/backend/internal/jobqueue/main_test.go
@@ -33,6 +33,7 @@ func TestShutdown(t *testing.T) {
err := Shutdown()
require.Nil(t, err, "Shutdown should not return an error when jobqueue is started")
+ // nolint: gosimple
select {
case <-ctx.Done():
switch ctx.Err() {
diff --git a/docker/ci/postgres/authentik.sql.gz b/docker/ci/postgres/authentik.sql.gz
index c67ecc9f..f711b922 100644
Binary files a/docker/ci/postgres/authentik.sql.gz and b/docker/ci/postgres/authentik.sql.gz differ
diff --git a/test/cypress/e2e/api/Ldap.cy.js b/test/cypress/e2e/api/Ldap.cy.js
index 62641ed5..afc86896 100644
--- a/test/cypress/e2e/api/Ldap.cy.js
+++ b/test/cypress/e2e/api/Ldap.cy.js
@@ -1,16 +1,10 @@
///
-const { curry } = require("lodash");
-
-// WIP
-
describe('LDAP with Authentik', () => {
let token;
if (Cypress.env('stack') === 'postgres') {
before(() => {
- cy.task('log', 'STACK IS: ' + Cypress.env('stack'));
-
cy.resetUsers();
cy.getToken().then((tok) => {
token = tok;
diff --git a/test/cypress/e2e/api/OAuth.cy.js b/test/cypress/e2e/api/OAuth.cy.js
new file mode 100644
index 00000000..7bb5d552
--- /dev/null
+++ b/test/cypress/e2e/api/OAuth.cy.js
@@ -0,0 +1,66 @@
+///
+
+describe('OAuth with Authentik', () => {
+ let token;
+ if (Cypress.env('stack') === 'postgres') {
+
+ before(() => {
+ cy.resetUsers();
+ cy.getToken().then((tok) => {
+ token = tok;
+
+ cy.task('backendApiPut', {
+ token: token,
+ path: '/api/settings/oauth-auth',
+ data: {
+ value: {
+ client_id: 'U5gCy0ymU8OofWS4nmkAPugCbWkFkkPztap38ReD',
+ client_secret: '9ZFClxwp7LzbfhIDk7k9DngQNQfwDAYqPrQMGXjFumCvQZATtXCwme20o0TnLP6uEHUkKqEFOInhxp01gVeaHCLW83iTK4PonoUnpFnXgyZAcu0H3zBxxOkVtRwACaoW',
+ authorization_url: 'http://authentik-ldap:9000/application/o/authorize/',
+ resource_url: 'http://authentik-ldap:9000/application/o/userinfo/',
+ token_url: 'http://authentik-ldap:9000/application/o/token/',
+ logout_url: 'http://authentik-ldap:9000/application/o/npm3/end-session/',
+ identifier: 'preferred_username',
+ scopes: [],
+ auto_create_user: true
+ }
+ }
+ }).then((data) => {
+ cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
+ expect(data.result).to.have.property('id');
+ expect(data.result.id).to.be.greaterThan(0);
+ });
+
+ cy.task('backendApiPut', {
+ token: token,
+ path: '/api/settings/auth-methods',
+ data: {
+ value: [
+ 'local',
+ 'oauth'
+ ]
+ }
+ }).then((data) => {
+ cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
+ expect(data.result).to.have.property('id');
+ expect(data.result.id).to.be.greaterThan(0);
+ });
+ });
+ });
+
+ it('Should log in with OAuth', function() {
+ cy.task('backendApiGet', {
+ token: token,
+ path: '/oauth/login?redirect_base=http%3A%2F%2Ffullstack%3A81',
+ }).then((data) => {
+ expect(data).to.have.property('result');
+ cy.visit(data.result);
+ cy.get('input[name="uidField"]').type('cypress');
+ cy.get('button[type="submit"]').click();
+ cy.get('input[name="password"]').type('fqXBfUYqHvYqiwBHWW7f');
+ cy.get('button[type="submit"]').click();
+ cy.url().should('match', /fullstack/)
+ });
+ });
+ }
+});