136 lines
3.0 KiB
TypeScript
136 lines
3.0 KiB
TypeScript
import { describe, expect, it } from "vitest"
|
|
import { TestContainer } from "dioc/testing"
|
|
import { TabService } from "../tab"
|
|
import { reactive } from "vue"
|
|
|
|
class MockTabService extends TabService<{ request: string }> {
|
|
public static readonly ID = "MOCK_TAB_SERVICE"
|
|
|
|
override onServiceInit() {
|
|
this.tabMap = reactive(
|
|
new Map([
|
|
[
|
|
"test",
|
|
{
|
|
id: "test",
|
|
document: {
|
|
request: "test request",
|
|
},
|
|
},
|
|
],
|
|
])
|
|
)
|
|
|
|
this.watchCurrentTabID()
|
|
}
|
|
}
|
|
|
|
describe("TabService", () => {
|
|
it("initially only one tab is defined", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
expect(service.getActiveTabs().value.length).toEqual(1)
|
|
})
|
|
|
|
it("initially the only tab is the active tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
expect(service.getActiveTab()).not.toBeNull()
|
|
})
|
|
|
|
it("initially active tab id is test", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
expect(service.getActiveTab()?.id).toEqual("test")
|
|
})
|
|
|
|
it("add new tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
service.createNewTab({
|
|
request: "new request",
|
|
})
|
|
|
|
expect(service.getActiveTabs().value.length).toEqual(2)
|
|
})
|
|
|
|
it("get active tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
console.log(service.getActiveTab())
|
|
|
|
expect(service.getActiveTab()?.id).toEqual("test")
|
|
})
|
|
|
|
it("sort tabs", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
const currentOrder = service.updateTabOrdering(1, 0)
|
|
|
|
expect(currentOrder[1]).toEqual("test")
|
|
})
|
|
|
|
it("update tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
service.updateTab({
|
|
id: service.currentTabID.value,
|
|
document: {
|
|
request: "updated request",
|
|
},
|
|
})
|
|
|
|
expect(service.getActiveTab()?.document.request).toEqual("updated request")
|
|
})
|
|
|
|
it("set new active tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
service.setActiveTab("test")
|
|
|
|
expect(service.getActiveTab()?.id).toEqual("test")
|
|
})
|
|
|
|
it("close other tabs", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
service.closeOtherTabs("test")
|
|
|
|
expect(service.getActiveTabs().value.length).toEqual(1)
|
|
})
|
|
|
|
it("close tab", () => {
|
|
const container = new TestContainer()
|
|
|
|
const service = container.bind(MockTabService)
|
|
|
|
service.createNewTab({
|
|
request: "new request",
|
|
})
|
|
|
|
expect(service.getActiveTabs().value.length).toEqual(2)
|
|
|
|
service.closeTab("test")
|
|
|
|
expect(service.getActiveTabs().value.length).toEqual(1)
|
|
})
|
|
})
|