Skip to content

Possible alternative implementation of integration tests (draft)

mgoerens edited this page Jan 19, 2022 · 2 revisions
DescribeTable("Extracting the server name and report stats value from ConfigMap",
	func(ServerName string, ReportStats bool) {
		cm := corev1.ConfigMap{
			Data: map[string]string{
				"homeserver.yaml": "server_name: " + ServerName + "\n" +
					"report_stats: " + convert_to_yes_no(ReportStats),
			},
		}
		Expect(r.ParseHomeserverConfigMap(ctx, &s, cm)).Should(Succeed())
		Expect(s.Status.HomeserverConfiguration.ServerName).Should(Equal("my-server-name"))
		Expect(s.Status.HomeserverConfiguration.ReportStats).Should(Equal(ReportStats))
	},
	Entry("when server name is valid and report stat set to true", "my-server-name", true),
	Entry("when server name is valid and report stat set to false", "my-server-name", false),
)

DescribeTable("Testing homeserver.yaml not present in ConfigMap",
	func(data_key string) {
		var cm corev1.ConfigMap
		if data_key != "" {
			cm.Data = map[string]string{data_key: "file_content"}
		}
		Expect(r.ParseHomeserverConfigMap(ctx, &s, cm)).ShouldNot(Succeed())
	},
	Entry("when ConfigMap doesn't contain any data", ""),
	Entry("when ConfigMap contains a different file than homeserver.yaml", "not_homeserver.yaml"),
)

DescribeTable("Testing incorrect homeserver.yaml in ConfigMap",
	func(ServerName string, ReportStats bool) {
		cm := corev1.ConfigMap{
			Data: map[string]string{
				"homeserver.yaml": "server_name: " + ServerName + "\n" +
					"report_stats: " + convert_to_yes_no(ReportStats),
			},
		}
		Expect(r.ParseHomeserverConfigMap(ctx, &s, cm)).ShouldNot(Succeed())
	},
	Entry("when data doesn't contain homerserver.yaml", "server_name", "my-server-name", true),
	Entry("when data doesn't contain homerserver.yaml", "my-server-name", true),
)

It("should successfully register the server name and report stats values into the Synapse object", func() {
	ServerName := "my-server-name"
	ReportStats := true

	cm := corev1.ConfigMap{
		Data: map[string]string{
			"homeserver.yaml": "server_name: " + ServerName + "\n" +
				"report_stats: " + convert_to_yes_no(ReportStats),
		},
	}

	Expect(r.ParseHomeserverConfigMap(ctx, &s, cm)).Should(Succeed())
	Expect(s.Status.HomeserverConfiguration.ServerName).Should(Equal("my-server-name"))
	Expect(s.Status.HomeserverConfiguration.ReportStats).Should(BeTrue())
})
Clone this wiki locally