fix(wait): inconsistent behaviour #2773
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use IsHost method instead of comparison with string.
Remove unnecessary if nil check on slice length.
Remove unnecessary fmt.Sprintf on non format string.
Refactor HostPortStrategy and HTTPStrategy tests to use generated mocks and a builder to increase test coverage and fix the behavioural inconsistencies identified.
Replicate WithForcedIPv4LocalHost from HTTPStrategy to HostPortStrategy to ensure feature parity.
Refactor wait host port lookups to use common functions so that HostPortStrategy and HTTPStrategy don't have hard to find logic differences in edge case handling. This includes consistent target checks, exposed port waiting for specified and unspecified paths.
Improve error checking and wrapping.
Extract wait tests into wait_test package.
Fix ForLog to allow checking across multiple log reads and ensure that the container is valid.
Fix ForLog to return as soon as context is cancelled instead of waiting for poll to expire.
Refactor ForLog to allow line by line checks which is quicker in the common case.