do desc("캐릭터 보관함 설치") bank_type = TableHelper.new_bank(:character) {state, _} = BankHelper.install_bank(state, bank_type) desc("캐릭터 보관함에 넣을 수 있는 아이템을 만든다") %{item_db_id: item_db_id, item_type: item_type} = BankHelper.create_some_storable_item_get_item(state, bank_type, 2) desc("아이템을 보관하고 확인한다") BankHelper.store_items(state, bank_type, %{id: item_db_id, count: 2}) InventoryHelper.assert_remain_items(state, %{}, %{item_db_id => 2}) BankHelper.assert_bank_items(state, bank_type, [%{type: item_type, count: 2}]) test "캐릭터마다 독립된 보관함을 가져야 한다", %{state1: state} do desc("캐릭터 보관함 설치") bank_type = TableHelper.new_bank(:character) {state, _} = BankHelper.install_bank(state, bank_type) desc("캐릭터 보관함에 넣을 수 있는 아이템을 만든다") %{item_db_id: item_db_id, item_type: item_type} = BankHelper.create_some_storable_item_get_item(state, bank_type, 2) desc("아이템을 보관하고 확인한다") BankHelper.store_items(state, bank_type, %{id: item_db_id, count: 2}) InventoryHelper.assert_remain_items(state, %{}, %{item_db_id => 2}) BankHelper.assert_bank_items(state, bank_type, [%{type: item_type, count: 2}]) desc("재접속했을 때, 캐릭터 보관함에 아이템이 그대로여야 한다") {state, _} = ConnectionHelper.reconnect_enter(state) BankHelper.assert_bank_items_after_load(state, bank_type, [ %{type: item_type, count: 2, locked: false} ]) desc("같은 계정 다른 캐릭터로 접속") name = ConnectionHelper.test_common_char_name(state, 1) state = put_in(state.common_char_name, name) {state, _char_id2, _} = common_character_setup(state: state) desc("다른 캐릭터로 접속했을 때, 캐릭터 보관함이 설치되어 있어야 한다") assert BankHelper.get_installed_bank_types(state) == [bank_type] desc("다른 캐릭터가 캐릭터 보관함에 저장한 아이템이 보이지 않아야 한다") assert BankHelper.assert_empty_bank(state, bank_type) desc("재접속해도 비어있는 캐릭터 보관함이 그대로여야 한다 ") {state, _} = ConnectionHelper.reconnect_enter(state)) assert BankHelper.get_installed_bank_types(state) == [bank_type] assert BankHelper.assert_empty_bank(state, bank_type) desc("캐릭터 보관함에 넣을 수 있는 아이템을 만든다") %{item_db_id: item_db_id, item_type: item_type} = BankHelper.create_some_storable_item_get_item(state, bank_type, 2) desc("아이템을 보관하고 확인한다") BankHelper.store_items(state, bank_type, %{id: item_db_id, count: 2}) InventoryHelper.assert_remain_items(state, %{}, %{item_db_id => 2}) BankHelper.assert_bank_items(state, bank_type, [%{type: item_type, count: 2}])