All files / test/blong-int-adapter server.ts

100% Statements 109/109
100% Branches 1/1
100% Functions 0/0
100% Lines 109/109

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 1101x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x 9x  
import {server} from '@feasibleone/blong';
 
/**
 * blong-int-adapter: Integration tests for all blong-gogo adapter types.
 *
 * Each adapter realm is opt-in via a dedicated config name passed through
 * the BLONG_ENV environment variable (e.g. BLONG_ENV=adapter.mysql).
 * This prevents all realms from activating together and requiring all
 * backends simultaneously.
 */
export default server(blong => ({
    url: import.meta.url,
    validation: blong.type.Object({}),
    children: [
        './mysql',
        './mongodb',
        './redis',
        './http',
        './s3',
        './kafka',
        './vault',
        './keycloak',
        './k8s',
        './slack',
        './github',
    ],
    config: {
        default: {
            rpcServer: {port: 0},
            gateway: {port: 0},
        },
        microservice: {},
        'adapter.mysql': {
            mysql: {},
            watch: {
                test: [
                    'test.mysql.query',
                    'test.mysql.crud',
                    'test.mysql.resource',
                    'test.mysql.schema',
                    'test.mysql.objectSchema',
                    'test.mysql.list',
                ],
            },
        },
        'adapter.mongodb': {
            mongodb: {},
            watch: {
                test: [
                    'test.mongodb.documentInsert',
                    'test.mongodb.crud',
                    'test.mongodb.list',
                ],
            },
        },
        'adapter.redis': {
            redis: {},
            watch: {
                test: ['test.redis.key', 'test.redis.hash', 'test.redis.script', 'test.redis.list'],
            },
        },
        'adapter.http': {
            http: {},
            watch: {test: ['test.http.echoGet']},
        },
        'adapter.s3': {
            s3: {},
            watch: {test: ['test.s3.objectPut', 'test.s3.objectCrud', 'test.s3.bucketList']},
        },
        'adapter.kafka': {
            kafka: {},
            watch: {
                test: [
                    'test.kafka.messageProduce',
                    'test.kafka.messageRoundtrip',
                    'test.kafka.topicList',
                ],
            },
        },
        'adapter.vault': {
            vault: {},
            watch: {
                test: [
                    'test.vault.secretPut',
                    'test.vault.secretCrud',
                    'test.vault.secretHealth',
                    'test.vault.mountList',
                ],
            },
        },
        'adapter.keycloak': {
            keycloak: {},
            watch: {
                test: [
                    'test.keycloak.realmFind',
                    'test.keycloak.realmCrud',
                    'test.keycloak.userCrud',
                    'test.keycloak.groupCrud',
                    'test.keycloak.roleCrud',
                    'test.keycloak.clientCrud',
                ],
            },
        },
        'adapter.k8s': {
            k8s: {},
            watch: {test: ['test.k8s.namespaceFind', 'test.k8s.podLog']},
        },
    },
}));