21 lines
1.8 KiB
TypeScript
21 lines
1.8 KiB
TypeScript
import {render, screen} from '@testing-library/react'
|
|
import {expect, test} from 'vitest'
|
|
import {EcsServicePanel} from './EcsServicePanel'
|
|
|
|
test('shows Fargate awsvpc task, IP target, and ALB endpoint health', () => {
|
|
render(<EcsServicePanel resource={{id: 'orders-cluster|orders', name: 'orders', cloud: 'aws', service: 'ecs', type: 'ecs-service', region: 'us-east-1', createdAt: null, metadata: {cluster: 'orders-cluster', launchType: 'FARGATE', desiredCount: 1, runningCount: 1, networkConfiguration: {subnets: ['subnet-1'], securityGroups: ['sg-1'], assignPublicIp: 'ENABLED'}, tasks: [{arn: 'task-1', lastStatus: 'RUNNING', healthStatus: 'HEALTHY', connectivity: 'CONNECTED'}], loadBalancers: [{targetGroupArn: 'tg-1', targetType: 'ip', targets: [{id: '10.0.1.5', port: 8080, state: 'healthy'}], endpoints: [{dnsName: 'orders.example.test', scheme: 'internet-facing', state: 'active'}]}]}}}/>)
|
|
|
|
expect(screen.getByText('Fargate service state')).toBeInTheDocument()
|
|
expect(screen.getByText('awsvpc networking: subnets subnet-1 | security groups sg-1 | public IP ENABLED')).toBeInTheDocument()
|
|
expect(screen.getByText('HEALTHY')).toBeInTheDocument()
|
|
expect(screen.getByText('orders.example.test')).toBeInTheDocument()
|
|
expect(screen.getByText('10.0.1.5:8080')).toBeInTheDocument()
|
|
})
|
|
|
|
test('labels inactive services as not running instead of showing stale counts', () => {
|
|
render(<EcsServicePanel resource={{id: 'orders-cluster|orders', name: 'orders', cloud: 'aws', service: 'ecs', type: 'ecs-service', region: 'us-east-1', createdAt: null, status: 'INACTIVE', metadata: {cluster: 'orders-cluster', launchType: 'FARGATE', desiredCount: 2, runningCount: 2, inactive: true}}}/>)
|
|
|
|
expect(screen.getByText('Inactive, not running')).toBeInTheDocument()
|
|
expect(screen.queryByText('Running 2 of 2')).not.toBeInTheDocument()
|
|
})
|