update
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
import { tap, expect } from '@push.rocks/tapbundle';
|
||||
import * as plugins from '../ts/plugins.js';
|
||||
import { CertProvisioner } from '../ts/certificate/providers/cert-provisioner.js';
|
||||
import type { IDomainConfig } from '../ts/forwarding/config/domain-config.js';
|
||||
import type { IRouteConfig } from '../ts/proxies/smart-proxy/models/route-types.js';
|
||||
import type { ICertificateData } from '../ts/certificate/models/certificate-types.js';
|
||||
// Import SmartProxyCertProvisionObject type alias
|
||||
import type { TSmartProxyCertProvisionObject } from '../ts/certificate/providers/cert-provisioner.js';
|
||||
import type { TCertProvisionObject } from '../ts/certificate/providers/cert-provisioner.js';
|
||||
|
||||
// Fake Port80Handler stub
|
||||
class FakePort80Handler extends plugins.EventEmitter {
|
||||
@@ -31,6 +29,7 @@ tap.test('CertProvisioner handles static provisioning', async () => {
|
||||
const domain = 'static.com';
|
||||
// Create route-based configuration for testing
|
||||
const routeConfigs: IRouteConfig[] = [{
|
||||
name: 'Static Route',
|
||||
match: {
|
||||
ports: 443,
|
||||
domains: [domain]
|
||||
@@ -47,7 +46,7 @@ tap.test('CertProvisioner handles static provisioning', async () => {
|
||||
const fakePort80 = new FakePort80Handler();
|
||||
const fakeBridge = new FakeNetworkProxyBridge();
|
||||
// certProvider returns static certificate
|
||||
const certProvider = async (d: string): Promise<TSmartProxyCertProvisionObject> => {
|
||||
const certProvider = async (d: string): Promise<TCertProvisionObject> => {
|
||||
expect(d).toEqual(domain);
|
||||
return {
|
||||
domainName: domain,
|
||||
@@ -81,12 +80,15 @@ tap.test('CertProvisioner handles static provisioning', async () => {
|
||||
expect(evt.privateKey).toEqual('KEY');
|
||||
expect(evt.isRenewal).toEqual(false);
|
||||
expect(evt.source).toEqual('static');
|
||||
expect(evt.routeReference).toBeTruthy();
|
||||
expect(evt.routeReference.routeName).toEqual('Static Route');
|
||||
});
|
||||
|
||||
tap.test('CertProvisioner handles http01 provisioning', async () => {
|
||||
const domain = 'http01.com';
|
||||
// Create route-based configuration for testing
|
||||
const routeConfigs: IRouteConfig[] = [{
|
||||
name: 'HTTP01 Route',
|
||||
match: {
|
||||
ports: 443,
|
||||
domains: [domain]
|
||||
@@ -103,7 +105,7 @@ tap.test('CertProvisioner handles http01 provisioning', async () => {
|
||||
const fakePort80 = new FakePort80Handler();
|
||||
const fakeBridge = new FakeNetworkProxyBridge();
|
||||
// certProvider returns http01 directive
|
||||
const certProvider = async (): Promise<TSmartProxyCertProvisionObject> => 'http01';
|
||||
const certProvider = async (): Promise<TCertProvisionObject> => 'http01';
|
||||
const prov = new CertProvisioner(
|
||||
routeConfigs,
|
||||
fakePort80 as any,
|
||||
@@ -126,6 +128,7 @@ tap.test('CertProvisioner on-demand http01 renewal', async () => {
|
||||
const domain = 'renew.com';
|
||||
// Create route-based configuration for testing
|
||||
const routeConfigs: IRouteConfig[] = [{
|
||||
name: 'Renewal Route',
|
||||
match: {
|
||||
ports: 443,
|
||||
domains: [domain]
|
||||
@@ -141,7 +144,7 @@ tap.test('CertProvisioner on-demand http01 renewal', async () => {
|
||||
}];
|
||||
const fakePort80 = new FakePort80Handler();
|
||||
const fakeBridge = new FakeNetworkProxyBridge();
|
||||
const certProvider = async (): Promise<TSmartProxyCertProvisionObject> => 'http01';
|
||||
const certProvider = async (): Promise<TCertProvisionObject> => 'http01';
|
||||
const prov = new CertProvisioner(
|
||||
routeConfigs,
|
||||
fakePort80 as any,
|
||||
@@ -160,6 +163,7 @@ tap.test('CertProvisioner on-demand static provisioning', async () => {
|
||||
const domain = 'ondemand.com';
|
||||
// Create route-based configuration for testing
|
||||
const routeConfigs: IRouteConfig[] = [{
|
||||
name: 'On-Demand Route',
|
||||
match: {
|
||||
ports: 443,
|
||||
domains: [domain]
|
||||
@@ -175,7 +179,7 @@ tap.test('CertProvisioner on-demand static provisioning', async () => {
|
||||
}];
|
||||
const fakePort80 = new FakePort80Handler();
|
||||
const fakeBridge = new FakeNetworkProxyBridge();
|
||||
const certProvider = async (): Promise<TSmartProxyCertProvisionObject> => ({
|
||||
const certProvider = async (): Promise<TCertProvisionObject> => ({
|
||||
domainName: domain,
|
||||
publicKey: 'PKEY',
|
||||
privateKey: 'PRIV',
|
||||
@@ -200,6 +204,8 @@ tap.test('CertProvisioner on-demand static provisioning', async () => {
|
||||
expect(events.length).toEqual(1);
|
||||
expect(events[0].domain).toEqual(domain);
|
||||
expect(events[0].source).toEqual('static');
|
||||
expect(events[0].routeReference).toBeTruthy();
|
||||
expect(events[0].routeReference.routeName).toEqual('On-Demand Route');
|
||||
});
|
||||
|
||||
export default tap.start();
|
||||
Reference in New Issue
Block a user