package v1

import (
	"context"

	. "github.com/onsi/ginkgo/v2"
	. "github.com/onsi/gomega"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

var _ = Describe("Restore", func() {

	Context("Create restore", func() {
		It("should contains provider type and region label", func() {
			ctx := context.Background()
			pt, _, nt, tpl := prepareCluster()
			c := tpl.DeepCopy()
			Expect(k8sClient.Create(ctx, c)).To(Succeed())

			backup := &Backup{
				ObjectMeta: metav1.ObjectMeta{
					GenerateName: "backup-",
					Namespace:    c.Namespace,
				},
				Spec: BackupSpec{
					ClusterName: c.Name,
				},
			}
			Expect(k8sClient.Create(ctx, backup)).To(Succeed())

			restore := &Restore{
				ObjectMeta: metav1.ObjectMeta{
					GenerateName: "backup-",
					Namespace:    c.Namespace,
				},
				Spec: RestoreSpec{
					ClusterName: c.Name,
					From: From{
						Backup: backup.Name,
					},
				},
			}
			Expect(k8sClient.Create(ctx, restore)).To(Succeed())
			Expect(restore.Labels[ProviderTypeLabel]).To(Equal(pt.Name))
			Expect(restore.Labels[RegionLabel]).To(Equal(nt.Spec.Region))
		})
	})
})
