mirror of
https://github.com/containrrr/watchtower.git
synced 2026-02-17 12:48:06 +01:00
add additional test and further rework client mocks
This commit is contained in:
parent
abbdaa834c
commit
e97671f293
6 changed files with 384 additions and 67 deletions
|
|
@ -140,7 +140,7 @@ var _ = Describe("the client", func() {
|
|||
When("no filter is provided", func() {
|
||||
It("should return all available containers", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("watchtower", "running")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Watchtower, &mocks.Running)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false},
|
||||
|
|
@ -153,7 +153,7 @@ var _ = Describe("the client", func() {
|
|||
When("a filter matching nothing", func() {
|
||||
It("should return an empty array", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("watchtower", "running")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Watchtower, &mocks.Running)...)
|
||||
filter := filters.FilterByNames([]string{"lollercoaster"}, filters.NoFilter)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
|
|
@ -167,7 +167,7 @@ var _ = Describe("the client", func() {
|
|||
When("a watchtower filter is provided", func() {
|
||||
It("should return only the watchtower container", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("watchtower", "running")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Watchtower, &mocks.Running)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false},
|
||||
|
|
@ -180,7 +180,7 @@ var _ = Describe("the client", func() {
|
|||
When(`include stopped is enabled`, func() {
|
||||
It("should return both stopped and running containers", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running", "exited", "created"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("stopped", "watchtower", "running")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Stopped, &mocks.Watchtower, &mocks.Running)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false, IncludeStopped: true},
|
||||
|
|
@ -193,7 +193,7 @@ var _ = Describe("the client", func() {
|
|||
When(`include restarting is enabled`, func() {
|
||||
It("should return both restarting and running containers", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running", "restarting"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("watchtower", "running", "restarting")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Watchtower, &mocks.Running, &mocks.Restarting)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: true},
|
||||
|
|
@ -206,7 +206,7 @@ var _ = Describe("the client", func() {
|
|||
When(`include restarting is disabled`, func() {
|
||||
It("should not return restarting containers", func() {
|
||||
mockServer.AppendHandlers(mocks.ListContainersHandler("running"))
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("watchtower", "running")...)
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&mocks.Watchtower, &mocks.Running)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: false},
|
||||
|
|
@ -217,16 +217,33 @@ var _ = Describe("the client", func() {
|
|||
})
|
||||
})
|
||||
When(`a container uses container network mode`, func() {
|
||||
It("should return the container name instead of the ID", func() {
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers("net_consumer")...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false},
|
||||
}
|
||||
container, err := client.GetContainer(mocks.NetConsumerID)
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
networkMode := container.ContainerInfo().HostConfig.NetworkMode
|
||||
Expect(networkMode.ConnectedContainer()).To(Equal(mocks.NetProducerContainerName))
|
||||
When(`the network container can be resolved`, func() {
|
||||
It("should return the container name instead of the ID", func() {
|
||||
consumerContainerRef := mocks.NetConsumerOK
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&consumerContainerRef)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false},
|
||||
}
|
||||
container, err := client.GetContainer(consumerContainerRef.ContainerID())
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
networkMode := container.ContainerInfo().HostConfig.NetworkMode
|
||||
Expect(networkMode.ConnectedContainer()).To(Equal(mocks.NetSupplierContainerName))
|
||||
})
|
||||
})
|
||||
When(`the network container cannot be resolved`, func() {
|
||||
It("should still return the container ID", func() {
|
||||
consumerContainerRef := mocks.NetConsumerInvalidSupplier
|
||||
mockServer.AppendHandlers(mocks.GetContainerHandlers(&consumerContainerRef)...)
|
||||
client := dockerClient{
|
||||
api: docker,
|
||||
ClientOptions: ClientOptions{PullImages: false},
|
||||
}
|
||||
container, err := client.GetContainer(consumerContainerRef.ContainerID())
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
networkMode := container.ContainerInfo().HostConfig.NetworkMode
|
||||
Expect(networkMode.ConnectedContainer()).To(Equal(mocks.NetSupplierNotFoundID))
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue