2024-07-19 11:36:34 +02:00
|
|
|
import { describe, expect, it } from "vitest"
|
2024-09-27 03:04:05 +02:00
|
|
|
import { UIEventSource } from "../../src/Logic/UIEventSource"
|
2024-07-19 11:36:34 +02:00
|
|
|
import { Changes } from "../../src/Logic/Osm/Changes"
|
|
|
|
import LinkImageAction from "../../src/Logic/Osm/Actions/LinkImageAction"
|
|
|
|
|
|
|
|
describe("Changes", () => {
|
|
|
|
it("should correctly apply the image tag if an image gets linked in between", async () => {
|
2024-09-27 03:04:05 +02:00
|
|
|
const changes = Changes.createTestObject()
|
2024-07-19 11:36:34 +02:00
|
|
|
const id = "node/42"
|
2024-07-21 12:30:29 +02:00
|
|
|
const tags = new UIEventSource({ id, amenity: "shop" })
|
|
|
|
const addImage = new LinkImageAction(
|
|
|
|
id,
|
|
|
|
"image",
|
|
|
|
"https://example.org/uploaded_image",
|
|
|
|
tags,
|
|
|
|
{
|
|
|
|
theme: "test",
|
|
|
|
changeType: "add-image",
|
|
|
|
}
|
|
|
|
)
|
|
|
|
const linkImage = new LinkImageAction(
|
|
|
|
id,
|
|
|
|
"image",
|
|
|
|
"https://example.org/image_to_link",
|
|
|
|
tags,
|
|
|
|
{
|
|
|
|
theme: "test",
|
|
|
|
changeType: "link-image",
|
|
|
|
}
|
|
|
|
)
|
2024-07-19 11:36:34 +02:00
|
|
|
|
|
|
|
await changes.applyAction(linkImage)
|
|
|
|
await changes.applyAction(addImage)
|
|
|
|
|
|
|
|
const data = tags.data
|
|
|
|
expect(data["image:0"]).toBe("https://example.org/uploaded_image")
|
|
|
|
expect(data["image"]).toBe("https://example.org/image_to_link")
|
|
|
|
|
|
|
|
const pending = changes.pendingChanges.data
|
|
|
|
|
|
|
|
const change0 = pending[0].tags[0]
|
|
|
|
expect(change0.k).toBe("image")
|
|
|
|
expect(change0.v).toBe("https://example.org/image_to_link")
|
|
|
|
|
|
|
|
const change1 = pending[1].tags[0]
|
|
|
|
expect(change1.k).toBe("image:0")
|
|
|
|
expect(change1.v).toBe("https://example.org/uploaded_image")
|
|
|
|
})
|
|
|
|
})
|