mirror of
				https://github.com/NginxProxyManager/nginx-proxy-manager.git
				synced 2025-10-30 23:33:34 +00:00 
			
		
		
		
	Cypress test for LDAP
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							| @@ -1,6 +1,10 @@ | |||||||
| # WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production. | # WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production. | ||||||
| services: | services: | ||||||
|  |  | ||||||
|  |   cypress: | ||||||
|  |     environment: | ||||||
|  |       CYPRESS_stack: 'mysql' | ||||||
|  |  | ||||||
|   fullstack: |   fullstack: | ||||||
|     environment: |     environment: | ||||||
|       NPM_DB_DRIVER: 'mysql' |       NPM_DB_DRIVER: 'mysql' | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| # WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production. | # WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production. | ||||||
| services: | services: | ||||||
|  |  | ||||||
|  |   cypress: | ||||||
|  |     environment: | ||||||
|  |       CYPRESS_stack: 'postgres' | ||||||
|  |  | ||||||
|   fullstack: |   fullstack: | ||||||
|     environment: |     environment: | ||||||
|       NPM_DB_DRIVER: 'postgres' |       NPM_DB_DRIVER: 'postgres' | ||||||
|   | |||||||
| @@ -83,6 +83,7 @@ services: | |||||||
|       dockerfile: test/cypress/Dockerfile |       dockerfile: test/cypress/Dockerfile | ||||||
|     environment: |     environment: | ||||||
|       CYPRESS_baseUrl: 'http://fullstack:81' |       CYPRESS_baseUrl: 'http://fullstack:81' | ||||||
|  |       CYPRESS_stack: 'sqlite' | ||||||
|     volumes: |     volumes: | ||||||
|       - 'cypress_logs:/results' |       - 'cypress_logs:/results' | ||||||
|       - './dev/resolv.conf:/etc/resolv.conf:ro' |       - './dev/resolv.conf:/etc/resolv.conf:ro' | ||||||
|   | |||||||
							
								
								
									
										71
									
								
								test/cypress/e2e/api/Ldap.cy.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								test/cypress/e2e/api/Ldap.cy.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | /// <reference types="cypress" /> | ||||||
|  |  | ||||||
|  | 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; | ||||||
|  |  | ||||||
|  | 				cy.task('backendApiPut', { | ||||||
|  | 					token: token, | ||||||
|  | 					path:  '/api/settings/ldap-auth', | ||||||
|  | 					data:  { | ||||||
|  | 						value: { | ||||||
|  | 							host: 'authentik-ldap:3389', | ||||||
|  | 							base_dn: 'ou=users,DC=ldap,DC=goauthentik,DC=io', | ||||||
|  | 							user_dn: 'cn={{USERNAME}},ou=users,DC=ldap,DC=goauthentik,DC=io', | ||||||
|  | 							email_property: 'mail', | ||||||
|  | 							name_property: 'sn', | ||||||
|  | 							self_filter: '(&(cn={{USERNAME}})(ak-active=TRUE))', | ||||||
|  | 							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', | ||||||
|  | 							'ldap' | ||||||
|  | 						] | ||||||
|  | 					} | ||||||
|  | 				}).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 LDAP', function() { | ||||||
|  | 			cy.task('backendApiPost', { | ||||||
|  | 				token: token, | ||||||
|  | 				path:  '/api/auth', | ||||||
|  | 				data:  { | ||||||
|  | 					// Authentik LDAP creds: | ||||||
|  | 					type: 'ldap', | ||||||
|  | 					identity: 'cypress', | ||||||
|  | 					secret: 'fqXBfUYqHvYqiwBHWW7f' | ||||||
|  | 				} | ||||||
|  | 			}).then((data) => { | ||||||
|  | 				cy.validateSwaggerSchema('post', 200, '/auth', data); | ||||||
|  | 				expect(data.result).to.have.property('token'); | ||||||
|  | 			}); | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
|  | }); | ||||||
| @@ -1,4 +1,5 @@ | |||||||
| const {SwaggerValidation} = require('@jc21/cypress-swagger-validation'); | const {SwaggerValidation} = require('@jc21/cypress-swagger-validation'); | ||||||
|  | const chalk = require('chalk'); | ||||||
|  |  | ||||||
| module.exports = (on, config) => { | module.exports = (on, config) => { | ||||||
| 	// Replace swaggerFile config var wildcard | 	// Replace swaggerFile config var wildcard | ||||||
| @@ -11,7 +12,7 @@ module.exports = (on, config) => { | |||||||
| 	on('task', require('./backendApi/task')(config)); | 	on('task', require('./backendApi/task')(config)); | ||||||
| 	on('task', { | 	on('task', { | ||||||
| 		log(message) { | 		log(message) { | ||||||
| 			console.log(message); | 			console.log(chalk.cyan.bold('[') + chalk.blue.bold('LOG') + chalk.cyan.bold(']') + ' ' + chalk.red.bold(message)); | ||||||
| 			return null; | 			return null; | ||||||
| 		} | 		} | ||||||
| 	}); | 	}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user