From 6b07718871a616ec8d73ce882e3c6075571badfd Mon Sep 17 00:00:00 2001 From: elsid Date: Sun, 25 Feb 2024 01:01:55 +0100 Subject: [PATCH] Add morrowind test for moving object into container --- scripts/data/morrowind_tests/test.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/scripts/data/morrowind_tests/test.lua b/scripts/data/morrowind_tests/test.lua index 8898420b82..3515002f2d 100644 --- a/scripts/data/morrowind_tests/test.lua +++ b/scripts/data/morrowind_tests/test.lua @@ -2,6 +2,7 @@ local testing = require('testing_util') local util = require('openmw.util') local world = require('openmw.world') local core = require('openmw.core') +local types = require('openmw.types') if not core.contentFiles.has('Morrowind.esm') then error('This test requires Morrowind.esm') @@ -18,6 +19,28 @@ local tests = { coroutine.yield() testing.runLocalTest(world.players[1], 'Guard in Imperial Prison Ship should find path (#7241)') end}, + {'Should keep reference to an object moved into container (#7663)', function() + world.players[1]:teleport('ToddTest', util.vector3(2176, 3648, -191), util.transform.rotateZ(math.rad(0))) + coroutine.yield() + local barrel = world.createObject('barrel_01', 1) + local fargothRing = world.createObject('ring_keley', 1) + coroutine.yield() + testing.expectEqual(types.Container.inventory(barrel):find('ring_keley'), nil) + fargothRing:moveInto(types.Container.inventory(barrel)) + coroutine.yield() + testing.expectEqual(fargothRing.recordId, 'ring_keley') + local isFargothRing = function(actual) + if actual == nil then + return 'ring_keley is not found' + end + if actual.id ~= fargothRing.id then + return 'found ring_keley id does not match expected: actual=' .. tostring(actual.id) + .. ', expected=' .. tostring(fargothRing.id) + end + return '' + end + testing.expectThat(types.Container.inventory(barrel):find('ring_keley'), isFargothRing) + end}, } return {