forked from mtcontrib/scifi_nodes
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			bd58dbc48b
			...
			integratio
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					286e80edfd | ||
| 
						 | 
					fcce42837f | 
							
								
								
									
										15
									
								
								.github/workflows/integration-test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/integration-test.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					name: integration-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on: [push, pull_request]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    timeout-minutes: 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - name: integration-test
 | 
				
			||||||
 | 
					      run: ./test/integration-test.sh
 | 
				
			||||||
@@ -3,6 +3,7 @@
 | 
				
			|||||||
# scifi_nodes
 | 
					# scifi_nodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
 | 
					Minetest mod that adds scifi themed blocks, doors, materials, plants and other assets.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								test/integration-test.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								test/integration-test.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					# Spins up a test world to ensure proper working recipes and registrations
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CWD=$(dirname $0)
 | 
				
			||||||
 | 
					cd ${CWD}/../
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFG=/tmp/minetest.conf
 | 
				
			||||||
 | 
					MTDIR=/tmp/mt
 | 
				
			||||||
 | 
					WORLDDIR=${MTDIR}/worlds/world
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cat <<EOF > ${CFG}
 | 
				
			||||||
 | 
					 # empty
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mkdir -p ${WORLDDIR}
 | 
				
			||||||
 | 
					chmod 777 ${MTDIR} -R
 | 
				
			||||||
 | 
					docker run --rm -i \
 | 
				
			||||||
 | 
						-v ${CFG}:/etc/minetest/minetest.conf:ro \
 | 
				
			||||||
 | 
						-v ${MTDIR}:/var/lib/minetest/.minetest \
 | 
				
			||||||
 | 
						-v $(pwd)/:/var/lib/minetest/.minetest/worlds/world/worldmods/scifi_nodes \
 | 
				
			||||||
 | 
					  -v $(pwd)/test/test_mod/:/var/lib/minetest/.minetest/worlds/world/worldmods/scifi_nodes_test \
 | 
				
			||||||
 | 
					  --network host \
 | 
				
			||||||
 | 
						registry.gitlab.com/minetest/minetest/server:5.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test -f ${WORLDDIR}/integration_test.json && exit 0 || exit 1
 | 
				
			||||||
							
								
								
									
										40
									
								
								test/test_mod/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								test/test_mod/init.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.log("warning", "[TEST] integration-test enabled!")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- those mods have to be present
 | 
				
			||||||
 | 
					local assert_mods = {
 | 
				
			||||||
 | 
						"scifi_nodes"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- those nodes have to be present
 | 
				
			||||||
 | 
					local assert_nodes = {
 | 
				
			||||||
 | 
						"scifi_nodes:crate",
 | 
				
			||||||
 | 
						"scifi_nodes:door1a"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_on_mods_loaded(function()
 | 
				
			||||||
 | 
						minetest.after(0, function()
 | 
				
			||||||
 | 
							-- check mods
 | 
				
			||||||
 | 
							for _, modname in ipairs(assert_mods) do
 | 
				
			||||||
 | 
								if not minetest.get_modpath(modname) then
 | 
				
			||||||
 | 
									error("Mod not present: " .. modname)
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							-- check nodes
 | 
				
			||||||
 | 
							for _, nodename in ipairs(assert_nodes) do
 | 
				
			||||||
 | 
								if not minetest.registered_nodes[nodename] then
 | 
				
			||||||
 | 
									error("Node not present: " .. nodename)
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							local data = minetest.write_json({ success = true }, true);
 | 
				
			||||||
 | 
							local file = io.open(minetest.get_worldpath().."/integration_test.json", "w" );
 | 
				
			||||||
 | 
							if file then
 | 
				
			||||||
 | 
								file:write(data)
 | 
				
			||||||
 | 
								file:close()
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
							minetest.request_shutdown("success")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						end)
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
							
								
								
									
										2
									
								
								test/test_mod/mod.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								test/test_mod/mod.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					name = scifi_nodes_test
 | 
				
			||||||
 | 
					depends = scifi_nodes
 | 
				
			||||||
		Reference in New Issue
	
	Block a user