Skip to content

Commit f80bbb3

Browse files
committed
Migrate to helpers
1 parent 7c6a8fd commit f80bbb3

34 files changed

Lines changed: 347 additions & 198 deletions

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
},
1616
"dependencies": {},
1717
"devDependencies": {
18-
"turbo": "^2.6.2"
18+
"turbo": "^2.8.10"
1919
},
2020
"packageManager": "npm@10.7.0"
2121
}

packages/sns/test/consumers/CreateLocateConfigMixConsumer.spec.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
11
import type { SNSClient } from '@aws-sdk/client-sns'
2-
import type { SQSClient } from '@aws-sdk/client-sqs'
32
import type { STSClient } from '@aws-sdk/client-sts'
4-
import { deleteQueue } from '@message-queue-toolkit/sqs'
53
import type { AwilixContainer } from 'awilix'
64
import { beforeAll, beforeEach, describe, it } from 'vitest'
7-
import { assertTopic, deleteTopic } from '../../lib/utils/snsUtils.ts'
5+
import { assertTopic } from '../../lib/utils/snsUtils.ts'
6+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
87
import { type Dependencies, registerDependencies } from '../utils/testContext.ts'
98
import { CreateLocateConfigMixConsumer } from './CreateLocateConfigMixConsumer.ts'
109

1110
describe('CreateLocateConfigMixConsumer', () => {
1211
let diContainer: AwilixContainer<Dependencies>
13-
let sqsClient: SQSClient
1412
let snsClient: SNSClient
1513
let stsClient: STSClient
14+
let testAdmin: TestAwsResourceAdmin
1615

1716
beforeAll(async () => {
1817
diContainer = await registerDependencies({}, false)
19-
sqsClient = diContainer.cradle.sqsClient
2018
snsClient = diContainer.cradle.snsClient
2119
stsClient = diContainer.cradle.stsClient
20+
testAdmin = diContainer.cradle.testAdmin
2221
})
2322

2423
beforeEach(async () => {
25-
await deleteQueue(sqsClient, CreateLocateConfigMixConsumer.CONSUMED_QUEUE_NAME)
26-
await deleteTopic(snsClient, stsClient, CreateLocateConfigMixConsumer.SUBSCRIBED_TOPIC_NAME)
24+
await testAdmin.deleteQueue(CreateLocateConfigMixConsumer.CONSUMED_QUEUE_NAME)
25+
await testAdmin.deleteTopic(CreateLocateConfigMixConsumer.SUBSCRIBED_TOPIC_NAME)
2726
})
2827

2928
it('accepts mixed config of create and locate', async () => {

packages/sns/test/consumers/SnsSqsPermissionConsumer.deadLetterQueue.spec.ts

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
1-
import type { SNSClient } from '@aws-sdk/client-sns'
21
import { ListQueueTagsCommand, type SQSClient } from '@aws-sdk/client-sqs'
3-
import type { STSClient } from '@aws-sdk/client-sts'
42
import { waitAndRetry } from '@lokalise/node-core'
5-
import {
6-
assertQueue,
7-
deleteQueue,
8-
getQueueAttributes,
9-
type SQSMessage,
10-
} from '@message-queue-toolkit/sqs'
3+
import { assertQueue, getQueueAttributes, type SQSMessage } from '@message-queue-toolkit/sqs'
114
import type { AwilixContainer } from 'awilix'
125
import { Consumer } from 'sqs-consumer'
136
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'
14-
import { deleteTopic } from '../../lib/utils/snsUtils.ts'
157
import type { SnsPermissionPublisher } from '../publishers/SnsPermissionPublisher.ts'
8+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
169
import type { Dependencies } from '../utils/testContext.ts'
1710
import { registerDependencies } from '../utils/testContext.ts'
1811
import { SnsSqsPermissionConsumer } from './SnsSqsPermissionConsumer.ts'
@@ -26,24 +19,22 @@ describe('SnsSqsPermissionConsumer - dead letter queue', () => {
2619

2720
let diContainer: AwilixContainer<Dependencies>
2821
let sqsClient: SQSClient
29-
let snsClient: SNSClient
30-
let stsClient: STSClient
22+
let testAdmin: TestAwsResourceAdmin
3123

3224
let publisher: SnsPermissionPublisher
3325
let consumer: SnsSqsPermissionConsumer | undefined
3426

3527
beforeAll(async () => {
3628
diContainer = await registerDependencies({}, false)
3729
sqsClient = diContainer.cradle.sqsClient
38-
snsClient = diContainer.cradle.snsClient
39-
stsClient = diContainer.cradle.stsClient
30+
testAdmin = diContainer.cradle.testAdmin
4031
publisher = diContainer.cradle.permissionPublisher
4132
})
4233

4334
beforeEach(async () => {
44-
await deleteQueue(sqsClient, queueName)
45-
await deleteQueue(sqsClient, deadLetterQueueName)
46-
await deleteTopic(snsClient, stsClient, topicName)
35+
await testAdmin.deleteQueue(queueName)
36+
await testAdmin.deleteQueue(deadLetterQueueName)
37+
await testAdmin.deleteTopic(topicName)
4738
})
4839

4940
afterEach(async () => {
@@ -60,9 +51,9 @@ describe('SnsSqsPermissionConsumer - dead letter queue', () => {
6051
const deadLetterQueueName = 'deadLetterQueue'
6152

6253
beforeEach(async () => {
63-
await deleteQueue(sqsClient, queueName)
64-
await deleteQueue(sqsClient, deadLetterQueueName)
65-
await deleteTopic(snsClient, stsClient, topicName)
54+
await testAdmin.deleteQueue(queueName)
55+
await testAdmin.deleteQueue(deadLetterQueueName)
56+
await testAdmin.deleteTopic(topicName)
6657
})
6758

6859
it('creates a new dead letter queue', async () => {

packages/sns/test/consumers/SnsSqsPermissionConsumer.fifo.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import type { SNSClient } from '@aws-sdk/client-sns'
21
import type { SQSClient } from '@aws-sdk/client-sqs'
32
import { SendMessageCommand } from '@aws-sdk/client-sqs'
43
import type { AwilixContainer } from 'awilix'
54
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
6-
import { deleteTopic } from '../../lib/utils/snsUtils.ts'
75
import { SnsPermissionPublisherFifo } from '../publishers/SnsPermissionPublisherFifo.ts'
6+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
87
import type { Dependencies } from '../utils/testContext.ts'
98
import { registerDependencies } from '../utils/testContext.ts'
109
import { SnsSqsPermissionConsumerFifo } from './SnsSqsPermissionConsumerFifo.ts'
@@ -16,16 +15,16 @@ describe('SnsSqsPermissionConsumerFifo', () => {
1615
const dlqName = 'test-fifo-consumer-dlq.fifo'
1716

1817
let diContainer: AwilixContainer<Dependencies>
19-
let snsClient: SNSClient
2018
let sqsClient: SQSClient
19+
let testAdmin: TestAwsResourceAdmin
2120
beforeEach(async () => {
2221
diContainer = await registerDependencies()
23-
snsClient = diContainer.cradle.snsClient
2422
sqsClient = diContainer.cradle.sqsClient
23+
testAdmin = diContainer.cradle.testAdmin
2524
})
2625

2726
afterEach(async () => {
28-
await deleteTopic(snsClient, diContainer.cradle.stsClient, topicName)
27+
await testAdmin.deleteTopic(topicName)
2928
const { awilixManager } = diContainer.cradle
3029
await awilixManager.executeDispose()
3130
await diContainer.dispose()

packages/sns/test/consumers/SnsSqsPermissionConsumer.payloadOffloading.spec.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
import type { S3 } from '@aws-sdk/client-s3'
21
import type { SinglePayloadStoreConfig } from '@message-queue-toolkit/core'
32
import { S3PayloadStore } from '@message-queue-toolkit/s3-payload-store'
4-
import { deleteQueue } from '@message-queue-toolkit/sqs'
53
import type { AwilixContainer } from 'awilix'
64
import { asValue } from 'awilix'
75
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'
86
import { SNS_MESSAGE_MAX_SIZE } from '../../lib/sns/AbstractSnsService.ts'
9-
import { deleteTopic } from '../../lib/utils/snsUtils.ts'
107
import { SnsPermissionPublisher } from '../publishers/SnsPermissionPublisher.ts'
11-
import { assertBucket, emptyBucket } from '../utils/s3Utils.ts'
8+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
129
import type { Dependencies } from '../utils/testContext.ts'
1310
import { registerDependencies } from '../utils/testContext.ts'
1411
import { SnsSqsPermissionConsumer } from './SnsSqsPermissionConsumer.ts'
@@ -20,7 +17,7 @@ describe('SnsSqsPermissionConsumer - single-store payload offloading', () => {
2017
const s3BucketName = 'test-bucket'
2118

2219
let diContainer: AwilixContainer<Dependencies>
23-
let s3: S3
20+
let testAdmin: TestAwsResourceAdmin
2421
let payloadStoreConfig: SinglePayloadStoreConfig
2522

2623
let publisher: SnsPermissionPublisher
@@ -31,9 +28,9 @@ describe('SnsSqsPermissionConsumer - single-store payload offloading', () => {
3128
permissionPublisher: asValue(() => undefined),
3229
permissionConsumer: asValue(() => undefined),
3330
})
34-
s3 = diContainer.cradle.s3
31+
testAdmin = diContainer.cradle.testAdmin
3532

36-
await assertBucket(s3, s3BucketName)
33+
await testAdmin.createBucket(s3BucketName)
3734
payloadStoreConfig = {
3835
messageSizeThreshold: largeMessageSizeThreshold,
3936
store: new S3PayloadStore(diContainer.cradle, {
@@ -51,12 +48,8 @@ describe('SnsSqsPermissionConsumer - single-store payload offloading', () => {
5148
payloadStoreConfig,
5249
})
5350

54-
await deleteQueue(diContainer.cradle.sqsClient, SnsSqsPermissionConsumer.CONSUMED_QUEUE_NAME)
55-
await deleteTopic(
56-
diContainer.cradle.snsClient,
57-
diContainer.cradle.stsClient,
58-
SnsSqsPermissionConsumer.CONSUMED_QUEUE_NAME,
59-
)
51+
await testAdmin.deleteQueue(SnsSqsPermissionConsumer.CONSUMED_QUEUE_NAME)
52+
await testAdmin.deleteTopic(SnsSqsPermissionConsumer.CONSUMED_QUEUE_NAME)
6053

6154
await consumer.start()
6255
await publisher.init()
@@ -68,7 +61,7 @@ describe('SnsSqsPermissionConsumer - single-store payload offloading', () => {
6861
})
6962

7063
afterAll(async () => {
71-
await emptyBucket(s3, s3BucketName)
64+
await testAdmin.emptyBucket(s3BucketName)
7265

7366
const { awilixManager } = diContainer.cradle
7467
await awilixManager.executeDispose()

packages/sns/test/consumers/SnsSqsPermissionConsumer.spec.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ import { ListTagsForResourceCommand, type SNSClient } from '@aws-sdk/client-sns'
33
import { ListQueueTagsCommand, type SQSClient } from '@aws-sdk/client-sqs'
44
import type { STSClient } from '@aws-sdk/client-sts'
55
import { waitAndRetry } from '@lokalise/node-core'
6-
import { assertQueue, deleteQueue, getQueueAttributes } from '@message-queue-toolkit/sqs'
6+
import { assertQueue, getQueueAttributes } from '@message-queue-toolkit/sqs'
77
import { type AwilixContainer, asFunction, asValue } from 'awilix'
88
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
9-
import { assertTopic, deleteTopic } from '../../lib/utils/snsUtils.ts'
9+
import { assertTopic } from '../../lib/utils/snsUtils.ts'
1010
import { SnsPermissionPublisher } from '../publishers/SnsPermissionPublisher.ts'
11+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
1112
import type { Dependencies } from '../utils/testContext.ts'
1213
import { registerDependencies } from '../utils/testContext.ts'
1314
import { SnsSqsPermissionConsumer } from './SnsSqsPermissionConsumer.ts'
@@ -24,16 +25,18 @@ describe('SnsSqsPermissionConsumer', () => {
2425
let sqsClient: SQSClient
2526
let snsClient: SNSClient
2627
let stsClient: STSClient
28+
let testAdmin: TestAwsResourceAdmin
2729

2830
beforeAll(async () => {
2931
diContainer = await registerDependencies({}, false)
3032
sqsClient = diContainer.cradle.sqsClient
3133
snsClient = diContainer.cradle.snsClient
3234
stsClient = diContainer.cradle.stsClient
35+
testAdmin = diContainer.cradle.testAdmin
3336
})
3437
beforeEach(async () => {
35-
await deleteQueue(sqsClient, queueName)
36-
await deleteTopic(snsClient, stsClient, topicNome)
38+
await testAdmin.deleteQueue(queueName)
39+
await testAdmin.deleteTopic(topicNome)
3740
})
3841

3942
// FixMe https://github.com/localstack/localstack/issues/9306
@@ -788,8 +791,8 @@ describe('SnsSqsPermissionConsumer', () => {
788791
})
789792

790793
beforeEach(async () => {
791-
await deleteQueue(diContainer.cradle.sqsClient, queueName)
792-
await deleteTopic(diContainer.cradle.snsClient, diContainer.cradle.stsClient, topicName)
794+
await diContainer.cradle.testAdmin.deleteQueue(queueName)
795+
await diContainer.cradle.testAdmin.deleteTopic(topicName)
793796
})
794797

795798
afterAll(async () => {
@@ -870,8 +873,8 @@ describe('SnsSqsPermissionConsumer', () => {
870873
})
871874

872875
beforeEach(async () => {
873-
await deleteQueue(diContainer.cradle.sqsClient, queueName)
874-
await deleteTopic(diContainer.cradle.snsClient, diContainer.cradle.stsClient, topicName)
876+
await diContainer.cradle.testAdmin.deleteQueue(queueName)
877+
await diContainer.cradle.testAdmin.deleteTopic(topicName)
875878
})
876879

877880
afterAll(async () => {

packages/sns/test/consumers/SnsSqsPermissionConsumer.startupResourcePolling.spec.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
NO_TIMEOUT,
88
StartupResourcePollingTimeoutError,
99
} from '@message-queue-toolkit/core'
10-
import { assertQueue, deleteQueue } from '@message-queue-toolkit/sqs'
10+
import { assertQueue } from '@message-queue-toolkit/sqs'
1111
import type { AwilixContainer } from 'awilix'
1212
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
1313
import {
@@ -16,7 +16,8 @@ import {
1616
type SNSSQSConsumerOptions,
1717
} from '../../lib/sns/AbstractSnsSqsConsumer.ts'
1818
import { initSnsSqs } from '../../lib/utils/snsInitter.ts'
19-
import { assertTopic, deleteTopic } from '../../lib/utils/snsUtils.ts'
19+
import { assertTopic } from '../../lib/utils/snsUtils.ts'
20+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
2021
import type { Dependencies } from '../utils/testContext.ts'
2122
import { registerDependencies } from '../utils/testContext.ts'
2223
import {
@@ -69,22 +70,24 @@ describe('SnsSqsPermissionConsumer - startupResourcePollingConfig', () => {
6970
let sqsClient: SQSClient
7071
let snsClient: SNSClient
7172
let stsClient: STSClient
73+
let testAdmin: TestAwsResourceAdmin
7274

7375
beforeAll(async () => {
7476
diContainer = await registerDependencies({}, false)
7577
sqsClient = diContainer.cradle.sqsClient
7678
snsClient = diContainer.cradle.snsClient
7779
stsClient = diContainer.cradle.stsClient
80+
testAdmin = diContainer.cradle.testAdmin
7881
})
7982

8083
beforeEach(async () => {
81-
await deleteQueue(sqsClient, queueName)
82-
await deleteTopic(snsClient, stsClient, topicName)
84+
await testAdmin.deleteQueue(queueName)
85+
await testAdmin.deleteTopic(topicName)
8386
})
8487

8588
afterEach(async () => {
86-
await deleteQueue(sqsClient, queueName)
87-
await deleteTopic(snsClient, stsClient, topicName)
89+
await testAdmin.deleteQueue(queueName)
90+
await testAdmin.deleteTopic(topicName)
8891
})
8992

9093
afterAll(async () => {

packages/sns/test/publishers/SnsPermissionPublisher.fifo.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import type { SinglePayloadStoreConfig } from '@message-queue-toolkit/core'
44
import { S3PayloadStore } from '@message-queue-toolkit/s3-payload-store'
55
import type { AwilixContainer } from 'awilix'
66
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
7-
import { deleteTopic, isFifoTopicName, validateFifoTopicName } from '../../lib/utils/snsUtils.ts'
8-
import { assertBucket } from '../utils/s3Utils.ts'
7+
import { isFifoTopicName, validateFifoTopicName } from '../../lib/utils/snsUtils.ts'
8+
import type { TestAwsResourceAdmin } from '../utils/testAdmin.ts'
99
import type { Dependencies } from '../utils/testContext.ts'
1010
import { registerDependencies } from '../utils/testContext.ts'
1111
import { SnsPermissionPublisherFifo } from './SnsPermissionPublisherFifo.ts'
@@ -43,14 +43,16 @@ describe('SnsPermissionPublisherFifo', () => {
4343

4444
let diContainer: AwilixContainer<Dependencies>
4545
let snsClient: SNSClient
46+
let testAdmin: TestAwsResourceAdmin
4647
beforeEach(async () => {
4748
diContainer = await registerDependencies()
4849
snsClient = diContainer.cradle.snsClient
49-
await deleteTopic(snsClient, diContainer.cradle.stsClient, topicName)
50+
testAdmin = diContainer.cradle.testAdmin
51+
await testAdmin.deleteTopic(topicName)
5052
})
5153

5254
afterEach(async () => {
53-
await deleteTopic(snsClient, diContainer.cradle.stsClient, topicName)
55+
await testAdmin.deleteTopic(topicName)
5456
await diContainer.cradle.awilixManager.executeDispose()
5557
await diContainer.dispose()
5658
})
@@ -271,8 +273,7 @@ describe('SnsPermissionPublisherFifo', () => {
271273

272274
it('resolves MessageGroupId from messageGroupIdField even when payload is offloaded', async () => {
273275
const s3BucketName = 'fifo-payload-offloading-test-bucket'
274-
const s3 = diContainer.cradle.s3
275-
await assertBucket(s3, s3BucketName)
276+
await testAdmin.createBucket(s3BucketName)
276277

277278
const payloadStoreConfig: SinglePayloadStoreConfig = {
278279
messageSizeThreshold: 100, // Very small threshold to force offloading

0 commit comments

Comments
 (0)