nginx-proxy-manager/test/cypress/integration/api/FullCertProvision.spec.js

96 lines
2.7 KiB
JavaScript

/// <reference types="Cypress" />
describe('Full Certificate Provisions', () => {
let token;
let caID;
let dnsID;
before(() => {
cy.getToken().then((tok) => {
token = tok;
cy.task('backendApiPost', {
token: token,
path: '/api/certificate-authorities',
data: {
name: 'Test CA',
acmesh_server: 'https://ca.internal/acme/acme/directory',
ca_bundle: '/etc/ssl/certs/NginxProxyManager.crt',
max_domains: 5,
is_wildcard_supported: true
}
}).then((data) => {
// cy.validateSwaggerSchema('post', 201, '/certificate-authorities', data);
expect(data.result).to.have.property('id');
expect(data.result.id).to.be.greaterThan(0);
caID = data.result.id;
});
cy.task('backendApiPost', {
token: token,
path: '/api/dns-providers',
data: {
acmesh_name: 'dns_pdns',
name: 'PowerDNS - example.com',
dns_sleep: 5,
meta: {
url: 'http://ns1.pdns:8081',
server_id: 'localhost',
token: 'npm',
ttl: '5'
}
}
}).then((data) => {
cy.validateSwaggerSchema('post', 201, '/dns-providers', data);
expect(data.result).to.have.property('id');
expect(data.result.id).to.be.greaterThan(0);
dnsID = data.result.id;
});
});
});
it('Should be able to create new http certificate', function() {
cy.task('backendApiPost', {
token: token,
path: '/api/certificates',
data: {
type: 'http',
certificate_authority_id: caID,
name: 'website1.example.com',
domain_names: [
'website1.example.com'
]
}
}).then((data) => {
cy.validateSwaggerSchema('post', 201, '/certificates', data);
expect(data.result).to.have.property('id');
expect(data.result.id).to.be.greaterThan(0);
expect(data.result.user_id).to.be.greaterThan(0);
cy.waitForCertificateStatus(token, data.result.id, 'provided');
});
});
it('Should be able to create new dns certificate', function() {
cy.task('backendApiPost', {
token: token,
path: '/api/certificates',
data: {
type: 'dns',
certificate_authority_id: caID,
dns_provider_id: dnsID,
name: 'dns: website2.example.com',
domain_names: [
'website2.example.com'
]
}
}).then((data) => {
cy.validateSwaggerSchema('post', 201, '/certificates', data);
expect(data.result).to.have.property('id');
expect(data.result.id).to.be.greaterThan(0);
expect(data.result.user_id).to.be.greaterThan(0);
cy.waitForCertificateStatus(token, data.result.id, 'provided');
});
});
});