AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Uw Analyze Integration Tests

skill-nearform-unwind-uw-analyze-integration-tests · by nearform

Use when analyzing integration tests that verify component interactions, database access, and external service integration

— No reviews yet
0 installs
42 views
0.0% view→install

Install

$ agentstack add skill-nearform-unwind-uw-analyze-integration-tests

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-nearform-unwind-uw-analyze-integration-tests)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Uw Analyze Integration Tests? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Analyzing Integration Tests

Output: docs/unwind/layers/integration-tests/ (folder with index.md + section files)

Principles: See analysis-principles.md - completeness, machine-readable, link to source, no commentary, incremental writes.

Output Structure

docs/unwind/layers/integration-tests/
├── index.md           # Test summary, infrastructure overview
├── config.md          # Test containers, database setup
├── repository-tests.md # Database integration tests
├── api-tests.md       # API endpoint tests
├── external-tests.md  # External service integration tests
└── messaging-tests.md # Kafka/queue tests

For large codebases, split by integration type:

docs/unwind/layers/integration-tests/
├── index.md
├── config.md
├── database/
├── api/
└── messaging/

Process (Incremental Writes)

Step 1: Setup

mkdir -p docs/unwind/layers/integration-tests/

Write initial index.md:

# Integration Tests

## Sections
- [Configuration](config.md) - _pending_
- [Repository Tests](repository-tests.md) - _pending_
- [API Tests](api-tests.md) - _pending_
- [External Service Tests](external-tests.md) - _pending_
- [Messaging Tests](messaging-tests.md) - _pending_

## Summary
_Analysis in progress..._

Step 2: Analyze and write config.md

  1. Find test containers, database setup, WireMock config
  2. Write config.md immediately
  3. Update index.md

Step 3: Analyze and write repository-tests.md

  1. Find all database integration tests
  2. Write repository-tests.md immediately
  3. Update index.md

Step 4: Analyze and write api-tests.md

  1. Find all API endpoint tests
  2. Write api-tests.md immediately
  3. Update index.md

Step 5: Analyze and write external-tests.md (if applicable)

  1. Find external service integration tests
  2. Write external-tests.md immediately
  3. Update index.md

Step 6: Analyze and write messaging-tests.md (if applicable)

  1. Find Kafka/queue tests
  2. Write messaging-tests.md immediately
  3. Update index.md

Step 7: Finalize index.md Add integration summary table

Output Format

# Integration Tests

## Configuration

### Test Containers

[TestContainersConfig.java](https://github.com/owner/repo/blob/main/src/test/java/config/TestContainersConfig.java)

```java
@TestConfiguration
public class TestContainersConfig {

    @Container
    static PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:14")
        .withDatabaseName("testdb")
        .withUsername("test")
        .withPassword("test");

    @Container
    static KafkaContainer kafka = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.0.0"));

    @DynamicPropertySource
    static void configureProperties(DynamicPropertyRegistry registry) {
        registry.add("spring.datasource.url", postgres::getJdbcUrl);
        registry.add("spring.kafka.bootstrap-servers", kafka::getBootstrapServers);
    }
}

WireMock Setup

WireMockConfig.java

@TestConfiguration
public class WireMockConfig {

    @Bean
    public WireMockServer wireMockServer() {
        WireMockServer server = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort());
        server.start();
        return server;
    }
}

Test Summary

| Integration | Tests | Status | |-------------|-------|--------| | Database | 15 | Passing | | Kafka | 8 | Passing | | Stripe API | 5 | Passing | | Email Service | 3 | Passing |

Repository Integration Tests

UserRepositoryIT

UserRepositoryIT.java

@DataJpaTest
@Testcontainers
@AutoConfigureTestDatabase(replace = NONE)
class UserRepositoryIT {

    @Container
    static PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:14");

    @Autowired
    private UserRepository userRepository;

    @Test
    void findByEmail_existingUser_returnsUser() {
        User user = new User("test@example.com", "hash");
        userRepository.save(user);

        Optional found = userRepository.findByEmail("test@example.com");

        assertThat(found).isPresent();
        assertThat(found.get().getEmail()).isEqualTo("test@example.com");
    }

    @Test
    void findByStatus_multipleUsers_returnsFiltered() {
        userRepository.save(new User("active@example.com", "hash", UserStatus.ACTIVE));
        userRepository.save(new User("suspended@example.com", "hash", UserStatus.SUSPENDED));

        List active = userRepository.findByStatus(UserStatus.ACTIVE);

        assertThat(active).hasSize(1);
        assertThat(active.get(0).getEmail()).isEqualTo("active@example.com");
    }
}

[Continue for ALL repository tests...]

API Integration Tests

UserControllerIT

UserControllerIT.java

@SpringBootTest(webEnvironment = RANDOM_PORT)
@Testcontainers
class UserControllerIT {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    void createUser_validRequest_returnsCreated() {
        CreateUserRequest request = new CreateUserRequest("new@example.com", "password123", "New User");

        ResponseEntity response = restTemplate.postForEntity(
            "/api/v1/users", request, UserResponse.class);

        assertThat(response.getStatusCode()).isEqualTo(HttpStatus.CREATED);
        assertThat(response.getBody().email()).isEqualTo("new@example.com");
    }
}

External Service Tests

StripeClientIT

StripeClientIT.java

@SpringBootTest
@AutoConfigureWireMock(port = 0)
class StripeClientIT {

    @Autowired
    private StripeClient stripeClient;

    @Test
    void charge_validToken_returnsSuccess() {
        stubFor(post(urlEqualTo("/v1/charges"))
            .willReturn(aResponse()
                .withStatus(200)
                .withBody("{\"id\": \"ch_123\", \"status\": \"succeeded\"}")));

        PaymentResult result = stripeClient.charge("tok_valid", Money.of(100, USD));

        assertThat(result.isSuccess()).isTrue();
    }
}

Messaging Tests

OrderEventIT

OrderEventIT.java

@SpringBootTest
@EmbeddedKafka(partitions = 1, topics = {"order-events"})
class OrderEventIT {

    @Autowired
    private OrderEventPublisher publisher;

    @Autowired
    private KafkaTemplate kafkaTemplate;

    @Test
    void publishOrderCreated_sendsToKafka() {
        Order order = createTestOrder();

        publisher.publishOrderCreated(order);

        // Verify message received
        ConsumerRecord record = KafkaTestUtils.getSingleRecord(consumer, "order-events");
        assertThat(record.value()).isInstanceOf(OrderCreatedEvent.class);
    }
}

Unknowns

  • [List anything unclear]

## Refresh Mode

If `docs/unwind/layers/integration-tests/` exists, compare current state and add `## Changes Since Last Review` section to `index.md`.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nearform](https://github.com/nearform)
- **Source:** [nearform/unwind](https://github.com/nearform/unwind)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.