mirror of
				https://github.com/livebook-dev/livebook.git
				synced 2025-10-25 21:06:08 +08:00 
			
		
		
		
	* Add windows version of ci Config autocrlf to input on Windows start epmd in background * Update .github/workflows/test.yaml * Update .github/workflows/test.yaml * Update .github/workflows/test.yaml * Fix tests * Fix ownership of cached files * Fix tests * Increase timeouts * Run tests on Windows only on main Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| defmodule Livebook.TestHelpers do
 | |
|   @moduledoc false
 | |
| 
 | |
|   alias Livebook.Session.Data
 | |
| 
 | |
|   @doc """
 | |
|   Creates file structure according to the given specification.
 | |
|   """
 | |
|   def create_tree!(path, items) do
 | |
|     for {name, content} <- items do
 | |
|       child_path = Path.join(path, to_string(name))
 | |
| 
 | |
|       case content do
 | |
|         items when is_list(items) ->
 | |
|           File.mkdir!(child_path)
 | |
|           create_tree!(child_path, items)
 | |
| 
 | |
|         content when is_binary(content) ->
 | |
|           File.write!(child_path, content)
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   @doc """
 | |
|   Applies the given list of operations to `Livebook.Session.Data`.
 | |
| 
 | |
|   Raises if any of the operations results in an error.
 | |
|   """
 | |
|   def data_after_operations!(data \\ Data.new(), operations) do
 | |
|     operations
 | |
|     |> List.flatten()
 | |
|     |> Enum.reduce(data, fn operation, data ->
 | |
|       case Data.apply_operation(data, operation) do
 | |
|         {:ok, data, _action} ->
 | |
|           data
 | |
| 
 | |
|         :error ->
 | |
|           raise "failed to set up test data, operation #{inspect(operation)} returned an error"
 | |
|       end
 | |
|     end)
 | |
|   end
 | |
| 
 | |
|   @doc """
 | |
|   Converts a Unix-like absolute path into OS-compatible absolute path.
 | |
|   """
 | |
|   defmacro p("/" <> path), do: Path.expand("/") <> path
 | |
| end
 |