Files
QSfera/Server/services/collaboration/pkg/wopisrc/wopisrc_test.go
T
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

65 lines
1.9 KiB
Go

package wopisrc_test
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
"github.com/qsfera/server/services/collaboration/pkg/config"
"github.com/qsfera/server/services/collaboration/pkg/wopisrc"
)
var _ = Describe("Wopisrc Test", func() {
var (
c *config.Config
)
Context("GenerateWopiSrc", func() {
BeforeEach(func() {
c = &config.Config{
Wopi: config.Wopi{
WopiSrc: "https://cloud.example.test/wopi/files",
ProxyURL: "https://cloud.proxy.com",
ProxySecret: "secret",
},
}
})
When("WopiSrc URL is incorrect", func() {
c = &config.Config{
Wopi: config.Wopi{
WopiSrc: "https:&//cloud.example.test/wopi/files",
},
}
url, err := wopisrc.GenerateWopiSrc("123456", c)
Expect(err).To(HaveOccurred())
Expect(url).To(BeNil())
})
When("proxy URL is incorrect", func() {
c = &config.Config{
Wopi: config.Wopi{
WopiSrc: "https://cloud.example.test/wopi/files",
ProxyURL: "cloud",
ProxySecret: "secret",
},
}
url, err := wopisrc.GenerateWopiSrc("123456", c)
Expect(err).To(HaveOccurred())
Expect(url).To(BeNil())
})
When("proxy URL and proxy secret are configured", func() {
It("should generate a WOPI src URL as a jwt token", func() {
url, err := wopisrc.GenerateWopiSrc("123456", c)
Expect(err).ToNot(HaveOccurred())
Expect(url.String()).To(Equal("https://cloud.proxy.com/wopi/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1IjoiaHR0cHM6Ly9jbG91ZC5leGFtcGxlLnRlc3Qvd29waS9maWxlcy8iLCJmIjoiMTIzNDU2In0.LzyGPanHKxjLlIPoyfGU4cAUxzy3FAmBqMIqLCSHclg"))
})
})
When("proxy URL and proxy secret are not configured", func() {
It("should generate a WOPI src URL as a direct URL", func() {
c.Wopi.ProxyURL = ""
c.Wopi.ProxySecret = ""
url, err := wopisrc.GenerateWopiSrc("123456", c)
Expect(err).ToNot(HaveOccurred())
Expect(url.String()).To(Equal("https://cloud.example.test/wopi/files/123456"))
})
})
})
})