Skip to content

Don't skip paths by default#274

Open
miniBill wants to merge 7 commits intomainfrom
dont-skip-paths
Open

Don't skip paths by default#274
miniBill wants to merge 7 commits intomainfrom
dont-skip-paths

Conversation

@miniBill
Copy link
Collaborator

@miniBill miniBill commented Feb 13, 2026

Skipping ungenerable paths made sense when we had a lot of holes in our coverage, but I think it's time to switch to fail-by-default, while keeping the option to keep going on failed paths.

Eventually we probably want this option to go away, when we're confident we're covering most of the spec.

Same with the "generate Debug.todo" one honestly. That one should probably go even before.

@miniBill

This comment was marked as outdated.

@miniBill miniBill marked this pull request as draft February 13, 2026 15:15
@miniBill miniBill marked this pull request as ready for review February 13, 2026 18:46
@miniBill miniBill force-pushed the dont-skip-paths branch 2 times, most recently from 4462506 to 6848100 Compare February 13, 2026 19:01
@github-actions
Copy link

diff --ignore-all-space --minimal --new-file --recursive main/cli/generated/NullableEnum/Api.elm branch/cli/generated/NullableEnum/Api.elm
0a1,55
> module NullableEnum.Api exposing (root, rootTask)
> 
> {-|
> 
> 
> ## Operations
> 
> @docs root, rootTask
> 
> -}
> 
> import Dict
> import Http
> import Json.Decode
> import NullableEnum.Json
> import NullableEnum.Types
> import OpenApi.Common
> import Task
> 
> 
> {-| Does stuff
> -}
> root config =
>     Http.request
>         { url = "/"
>         , method = "GET"
>         , headers = []
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 NullableEnum.Json.decodeNullableEnum
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> {-| Does stuff
> -}
> rootTask :
>     {}
>     -> Task.Task (OpenApi.Common.Error e String) NullableEnum.Types.NullableEnum
> rootTask config =
>     Http.task
>         { url = "/"
>         , method = "GET"
>         , headers = []
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 NullableEnum.Json.decodeNullableEnum
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }
diff --ignore-all-space --minimal --new-file --recursive main/cli/generated/OverridingGlobalSecurity/Api.elm branch/cli/generated/OverridingGlobalSecurity/Api.elm
0a1,210
> module OverridingGlobalSecurity.Api exposing
>     ( getProtectedData, getProtectedDataTask, getUnprotectedData, getUnprotectedDataTask, patchUnprotectedData, patchUnprotectedDataTask
>     , postUnprotectedData, postUnprotectedDataTask
>     )
> 
> {-|
> 
> 
> ## Operations
> 
> @docs getProtectedData, getProtectedDataTask, getUnprotectedData, getUnprotectedDataTask, patchUnprotectedData, patchUnprotectedDataTask
> @docs postUnprotectedData, postUnprotectedDataTask
> 
> -}
> 
> import Dict
> import Http
> import Json.Decode
> import OpenApi.Common
> import OverridingGlobalSecurity.Json.Responses
> import OverridingGlobalSecurity.Types.Responses
> import Task
> import Url.Builder
> 
> 
> {-| Endpoint requiring token
> 
> Get secret data. Auth required!
> 
> -}
> getProtectedData :
>     { authorization : { token : String }
>     , toMsg :
>         Result (OpenApi.Common.Error e String) OverridingGlobalSecurity.Types.Responses.Data
>         -> msg
>     }
>     -> Cmd msg
> getProtectedData config =
>     Http.request
>         { url = Url.Builder.absolute [ "api", "protected" ] []
>         , method = "GET"
>         , headers =
>             [ Http.header
>                 "Authorization"
>                 ("Token " ++ config.authorization.token)
>             ]
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> {-| Endpoint requiring token
> 
> Get secret data. Auth required!
> 
> -}
> getProtectedDataTask :
>     { authorization : { token : String } }
>     -> Task.Task (OpenApi.Common.Error e String) OverridingGlobalSecurity.Types.Responses.Data
> getProtectedDataTask config =
>     Http.task
>         { url = Url.Builder.absolute [ "api", "protected" ] []
>         , method = "GET"
>         , headers =
>             [ Http.header
>                 "Authorization"
>                 ("Token " ++ config.authorization.token)
>             ]
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to get data
> 
> Get some data. No auth required.
> 
> -}
> getUnprotectedData config =
>     Http.request
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "GET"
>         , headers = []
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to get data
> 
> Get some data. No auth required.
> 
> -}
> getUnprotectedDataTask :
>     {}
>     -> Task.Task (OpenApi.Common.Error e String) OverridingGlobalSecurity.Types.Responses.Data
> getUnprotectedDataTask config =
>     Http.task
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "GET"
>         , headers = []
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to store data (again)
> 
> Store some data. No auth required.
> 
> -}
> patchUnprotectedData config =
>     Http.request
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "PATCH"
>         , headers = []
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to store data (again)
> 
> Store some data. No auth required.
> 
> -}
> patchUnprotectedDataTask :
>     {}
>     -> Task.Task (OpenApi.Common.Error e String) OverridingGlobalSecurity.Types.Responses.Data
> patchUnprotectedDataTask config =
>     Http.task
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "PATCH"
>         , headers = []
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to store data
> 
> Store some data. No auth required.
> 
> -}
> postUnprotectedData config =
>     Http.request
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "POST"
>         , headers = []
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> {-| Unprotected endpoint to store data
> 
> Store some data. No auth required.
> 
> -}
> postUnprotectedDataTask :
>     {}
>     -> Task.Task (OpenApi.Common.Error e String) OverridingGlobalSecurity.Types.Responses.Data
> postUnprotectedDataTask config =
>     Http.task
>         { url = Url.Builder.absolute [ "api", "unprotected" ] []
>         , method = "POST"
>         , headers = []
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 OverridingGlobalSecurity.Json.Responses.decodeData
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }
diff --ignore-all-space --minimal --new-file --recursive main/cli/generated/OverridingGlobalSecurity/Json/Responses.elm branch/cli/generated/OverridingGlobalSecurity/Json/Responses.elm
0a1,34
> module OverridingGlobalSecurity.Json.Responses exposing
>     ( encodeData
>     , decodeData
>     )
> 
> {-|
> 
> 
> ## Encoders
> 
> @docs encodeData
> 
> 
> ## Decoders
> 
> @docs decodeData
> 
> -}
> 
> import Json.Decode
> import Json.Encode
> import OverridingGlobalSecurity.Json
> import OverridingGlobalSecurity.Types
> import OverridingGlobalSecurity.Types.Responses
> 
> 
> encodeData : OverridingGlobalSecurity.Types.Responses.Data -> Json.Encode.Value
> encodeData =
>     OverridingGlobalSecurity.Json.encodeData
> 
> 
> decodeData : Json.Decode.Decoder OverridingGlobalSecurity.Types.Responses.Data
> decodeData =
>     OverridingGlobalSecurity.Json.decodeData
diff --ignore-all-space --minimal --new-file --recursive main/cli/generated/OverridingGlobalSecurity/Types/Responses.elm branch/cli/generated/OverridingGlobalSecurity/Types/Responses.elm
0a1,16
> module OverridingGlobalSecurity.Types.Responses exposing (Data)
> 
> {-|
> 
> 
> ## Aliases
> 
> @docs Data
> 
> -}
> 
> import OverridingGlobalSecurity.Types
> 
> 
> type alias Data =
>     OverridingGlobalSecurity.Types.Data
diff --ignore-all-space --minimal --new-file --recursive main/cli/generated/RecursiveAllofRefs/Api.elm branch/cli/generated/RecursiveAllofRefs/Api.elm
0a1,52
> module RecursiveAllofRefs.Api exposing (getGrandChild, getGrandChildTask)
> 
> {-|
> 
> 
> ## Operations
> 
> @docs getGrandChild, getGrandChildTask
> 
> -}
> 
> import Dict
> import Http
> import Json.Decode
> import OpenApi.Common
> import RecursiveAllofRefs.Json
> import RecursiveAllofRefs.Types
> import Task
> import Url.Builder
> 
> 
> getGrandChild config =
>     Http.request
>         { url = Url.Builder.absolute [ "api", "grand-child" ] []
>         , method = "GET"
>         , headers = []
>         , expect =
>             OpenApi.Common.expectJsonCustom
>                 (Dict.fromList [])
>                 RecursiveAllofRefs.Json.decodeGrandChild
>                 config.toMsg
>         , body = Http.emptyBody
>         , timeout = Nothing
>         , tracker = Nothing
>         }
> 
> 
> getGrandChildTask :
>     {}
>     -> Task.Task (OpenApi.Common.Error e String) RecursiveAllofRefs.Types.GrandChild
> getGrandChildTask config =
>     Http.task
>         { url = Url.Builder.absolute [ "api", "grand-child" ] []
>         , method = "GET"
>         , headers = []
>         , resolver =
>             OpenApi.Common.jsonResolverCustom
>                 (Dict.fromList [])
>                 RecursiveAllofRefs.Json.decodeGrandChild
>         , body = Http.emptyBody
>         , timeout = Nothing
>         }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant