Skip to content

Presets

Mockzilla responses can be changed and configured at runtime either using our desktop app or our embedded UI that can be included in your app.

What are presets?

Presets are pre-defined responses configured in code that can be applied at runtime.

Defining presets

Presets are applied to individual endpoints, they can be successful responses, errors, or anything else!

    EndpointConfiguration
        .Builder("Pig")
        .configureDashboardOverrides {
            addPreset(
                name = "George",
                response = MockzillaHttpResponse(
                    body = Json.encodeToString(
                        AnimalDto(
                            name = "George",
                            age = 2,
                            biography = "George Pig is a fictional character...",
                        )
                    )
                )
            )
            addPreset(
                name = "Pig Failure",
                response = MockzillaHttpResponse(statusCode = HttpStatusCode.NotFound)
            )
            ...
    EndpointConfigurationBuilder(id: "Pig")
        .configureDashboardOverrides { builder in
                builder.addPreset(
                    response: MockzillaHttpResponse(
                        status: HttpStatusCode.OK,
                        headers: [:],
                        body: AnimalDto(
                            name: "George",
                            age: 2,
                            biography: "George Pig is a fictional character...",
                        ).toJson()
                    ),
                    name: "George",
                    description: nil,
                    type: nil
                )
            }
EndpointConfig(
  name: "Pig",
  ...
  dashboardOptionsConfig: DashboardOptionsConfig(presets: [
    DashboardOverridePreset(
        name: "George",
        response: MockzillaHttpResponse(
          statusCode: 200,
          headers: {},
          body: AnimalDto(
            name = "George",
            age = 2,
            biography = "George Pig is a fictional character...",
          ).toJsonString(),
        )
    ),
    DashboardOverridePreset(
        name: "Pig Failure",
        response: MockzillaHttpResponse(
          statusCode: 404,
          headers: {},
          body: "",
        )
    )
  ])

Applying Presets

The presets can be applied through the desktop app or the embedded UI.

Embedded UI

Tapping an endpoint and scrolling down will show the full list of configured Presets.

alt text

Preset Types

Default Behaviour

By default the preset types are derived from the status code (defaulted to 200).

Presets

Overriding

This can be helpful if you're simulating an API that doesn't utilise status codes e.g using 200 even for errors.

.configureDashboardOverrides {
    addPreset(
        name = "200 Error",
        response = MockzillaHttpResponse(statusCode = HttpStatusCode.OK),
        type = DashboardOverridePreset.Type.ServerError
    ).addPreset(
        name = "200 Success",
        response = MockzillaHttpResponse(statusCode = HttpStatusCode.OK),
        type = DashboardOverridePreset.Type.Success
    ).addPreset(
        name = "200 Redirect",
        response = MockzillaHttpResponse(statusCode = HttpStatusCode.OK),
        type = DashboardOverridePreset.Type.Redirect
    )
}
.configureDashboardOverrides { builder in
    builder.addPreset(
        name: "200 Error",
        description: nil,
        response: MockzillaHttpResponse(status: HttpStatusCode.OK),
        type: MockzillaDashboardOverridePresetType.servererror
    )
    builder.addPreset(
        name: "200 Success",
        description: nil,
        response: MockzillaHttpResponse(status: HttpStatusCode.OK),
        type: MockzillaDashboardOverridePresetType.success
    )
    builder.addPreset(
        name: "200 Redirect",
        description: nil,
        response: MockzillaHttpResponse(status: HttpStatusCode.OK),
        type: MockzillaDashboardOverridePresetType.redirect
    )
}
    DashboardOptionsConfig(presets: [
        DashboardOverridePreset(
            name: "200 Error",
            response: MockzillaHttpResponse(statusCode: 200),
            description: null,
            type: DashboardOverridePresetType.serverError 
        ),
        DashboardOverridePreset(
            name: "200 Success",
            response: MockzillaHttpResponse(statusCode: 200),
            description: null,
            type: DashboardOverridePresetType.success
        ),
        DashboardOverridePreset(
            name: "200 Redirect",
            response: MockzillaHttpResponse(statusCode: 200),
            description: null,
            type: DashboardOverridePresetType.redirect
        ),
  ])

Presets with overrides