github.com/codefly-dev/core@v0.1.107/resources/module_test.go (about)

     1  package resources_test
     2  
     3  //
     4  //import (
     5  //	"context"
     6  //	"os"
     7  //	"path/filepath"
     8  //	"testing"
     9  //
    10  //	"github.com/codefly-dev/core/actions/actions"
    11  //	actionmodule "github.com/codefly-dev/core/actions/module"
    12  //	actionsv0 "github.com/codefly-dev/core/generated/go/actions/v0"
    13  //	"github.com/codefly-dev/core/resources"
    14  //	"github.com/codefly-dev/core/shared"
    15  //	"github.com/stretchr/testify/assert"
    16  //)
    17  //
    18  //func TestCreationModule(t *testing.T) {
    19  //	tmpDir := t.TempDir()
    20  //
    21  //	defer func() {
    22  //		os.RemoveAll(tmpDir)
    23  //	}()
    24  //	ctx := context.Background()
    25  //
    26  //	var action actions.Action
    27  //	var err error
    28  //
    29  //	action, err = action.NewActionNe(ctx, &actionsv0.New{
    30  //		Name: "test-",
    31  //		Path: tmpDir,
    32  //	})
    33  //require.NoError(t, err)
    34  //	out, err := action.Run(ctx)
    35  //require.NoError(t, err)
    36  //	 := shared.Must(actions.As[resources.](out))
    37  //
    38  //	action, err = actionmodule.NewActionAddModule(ctx, &actionsv0.NewModule{
    39  //		Name:        "test-module",
    40  //		Path: .Dir(),
    41  //	})
    42  //require.NoError(t, err)
    43  //	out, err = action.Run(ctx)
    44  //require.NoError(t, err)
    45  //
    46  //	app, err := actions.As[resources.Module](out)
    47  //require.NoError(t, err)
    48  //	require.Equal(t, "test-module", app.Name)
    49  //
    50  //	// Check that there is a configuration file
    51  //	_, err = os.Stat(filepath.Join(.Dir(), "modules/test-module", resources.ModuleConfigurationName))
    52  //
    53  //	// Run again should produce error
    54  //	_, err = action.Run(ctx)
    55  //	require.Error(t, err)
    56  //
    57  //	// Re-load the
    58  //	, err = resources.Reload(ctx, )
    59  //require.NoError(t, err)
    60  //	require.Equal(t, 1, len(.Modules))
    61  //
    62  //	// Check that we have the configuration
    63  //	back, err := .LoadModuleFromName(ctx, "test-module")
    64  //require.NoError(t, err)
    65  //	require.Equal(t, app.Name, back.Name)
    66  //
    67  //	// Add a second module
    68  //	action, err = actionmodule.NewActionAddModule(ctx, &actionsv0.NewModule{
    69  //		Name:        "test-module-2",
    70  //		Path: .Dir(),
    71  //	})
    72  //require.NoError(t, err)
    73  //	out, err = action.Run(ctx)
    74  //require.NoError(t, err)
    75  //	app, err = actions.As[resources.Module](out)
    76  //require.NoError(t, err)
    77  //	require.Equal(t, "test-module-2", app.Name)
    78  //
    79  //	, err = resources.Reload(ctx, )
    80  //require.NoError(t, err)
    81  //
    82  //	require.Equal(t, 2, len(.Modules))
    83  //}
    84  //
    85  //func TestCreationModuleWithWorkspace(t *testing.T) {
    86  //	ctx := context.Background()
    87  //	workspace, dir := createTestWorkspace(t, ctx)
    88  //	cur, err := os.Getwd()
    89  //require.NoError(t, err)
    90  //	err = os.Chdir(dir)
    91  //require.NoError(t, err)
    92  //
    93  //	defer func() {
    94  //		os.RemoveAll(dir)
    95  //		os.Chdir(cur)
    96  //	}()
    97  //
    98  //	var action actions.Action
    99  //	action, err = action.NewActionNew(ctx, &actionsv0.New{
   100  //		Name: "test-",
   101  //		Path: workspace.Dir(),
   102  //	})
   103  //require.NoError(t, err)
   104  //	out, err := action.Run(ctx)
   105  //require.NoError(t, err)
   106  //	 := shared.Must(actions.As[resources.](out))
   107  //
   108  //	// Add to workspace
   109  //	action, err = action.NewActionAddToWorkspace(ctx, &actionsv0.AddToWorkspace{
   110  //		Name:      .Name,
   111  //		Workspace: workspace.Name,
   112  //		Path:      .Dir(),
   113  //	})
   114  //require.NoError(t, err)
   115  //	out, err = action.Run(ctx)
   116  //require.NoError(t, err)
   117  //
   118  //	workspace = shared.Must(actions.As[resources.Workspace](out))
   119  //
   120  //	require.Equal(t, "test-", workspace.Active)
   121  //
   122  //	action, err = actionmodule.NewActionAddModule(ctx, &actionsv0.NewModule{
   123  //		Name:        "test-module",
   124  //		Path: .Dir(),
   125  //	})
   126  //require.NoError(t, err)
   127  //	out, err = action.Run(ctx)
   128  //require.NoError(t, err)
   129  //
   130  //	app := shared.Must(actions.As[resources.Module](out))
   131  //	require.Equal(t, "test-module", app.Name)
   132  //	require.Equal(t, .Name, app.)
   133  //	require.Equal(t, filepath.Join(.Dir(), "modules/test-module"), app.Dir())
   134  //
   135  //	// Running again should produce an error
   136  //	_, err = action.Run(ctx)
   137  //	require.Error(t, err)
   138  //
   139  //	// Add app to workspace
   140  //	action, err = actionmodule.NewActionAddModuleToWorkspace(ctx, &actionsv0.AddModuleToWorkspace{
   141  //		Name:      app.Name,
   142  //		:   .Name,
   143  //		Workspace: workspace.Name,
   144  //	})
   145  //require.NoError(t, err)
   146  //	out, err = action.Run(ctx)
   147  //require.NoError(t, err)
   148  //	workspace = shared.Must(actions.As[resources.Workspace](out))
   149  //
   150  //	, err = resources.Reload(ctx, )
   151  //require.NoError(t, err)
   152  //
   153  //	// Check that we have the app
   154  //	back, err := .LoadModuleFromName(ctx, "test-module")
   155  //require.NoError(t, err)
   156  //	require.Equal(t, app.Name, back.Name)
   157  //
   158  //	// One app should be active
   159  //
   160  //	// Check the active module
   161  //	back, err = workspace.LoadActiveModule(ctx, .Name)
   162  //require.NoError(t, err)
   163  //	require.Equal(t, app.Name, back.Name)
   164  //
   165  //	// Add a second module
   166  //	action, err = actionmodule.NewActionAddModule(ctx, &actionsv0.NewModule{
   167  //		Name:        "test-module-2",
   168  //		Path: .Name,
   169  //	})
   170  //require.NoError(t, err)
   171  //	out, err = action.Run(ctx)
   172  //require.NoError(t, err)
   173  //	app, err = actions.As[resources.Module](out)
   174  //require.NoError(t, err)
   175  //	require.Equal(t, "test-module-2", app.Name)
   176  //
   177  //	, err = resources.Reload(ctx, )
   178  //require.NoError(t, err)
   179  //
   180  //	require.Equal(t, 2, len(.Modules))
   181  //
   182  //	// Add workspace
   183  //	action, err = actionmodule.NewActionAddModuleToWorkspace(ctx, &actionsv0.AddModuleToWorkspace{
   184  //		Name:      app.Name,
   185  //		:   .Name,
   186  //		Workspace: workspace.Name,
   187  //	})
   188  //require.NoError(t, err)
   189  //	out, err = action.Run(ctx)
   190  //require.NoError(t, err)
   191  //	workspace = shared.Must(actions.As[resources.Workspace](out))
   192  //
   193  //	// Set active
   194  //	action, err = actionmodule.NewActionSetModuleActive(ctx, &actionsv0.SetModuleActive{
   195  //		Name:      app.Name,
   196  //		:   .Name,
   197  //		Workspace: workspace.Name,
   198  //	})
   199  //require.NoError(t, err)
   200  //	out, err = action.Run(ctx)
   201  //require.NoError(t, err)
   202  //	workspace = shared.Must(actions.As[resources.Workspace](out))
   203  //
   204  //	// Check active is the second one
   205  //	back, err = workspace.LoadActiveModule(ctx, .Name)
   206  //
   207  //	// Make the first one active
   208  //	action, err = actionmodule.NewActionSetModuleActive(ctx, &actionsv0.SetModuleActive{
   209  //		Name:      "test-module",
   210  //		:   .Name,
   211  //		Workspace: workspace.Name,
   212  //	})
   213  //require.NoError(t, err)
   214  //	out, err = action.Run(ctx)
   215  //require.NoError(t, err)
   216  //
   217  //	workspace, err = actions.As[resources.Workspace](out)
   218  //require.NoError(t, err)
   219  //	active, err := workspace.LoadActiveModule(ctx, .Name)
   220  //	require.Equal(t, "test-module", active.Name)
   221  //
   222  //	action, err = actionmodule.NewActionSetModuleActive(ctx, &actionsv0.SetModuleActive{
   223  //		Name:      "test-module-2",
   224  //		:   .Name,
   225  //		Workspace: workspace.Name,
   226  //	})
   227  //require.NoError(t, err)
   228  //	out, err = action.Run(ctx)
   229  //require.NoError(t, err)
   230  //	workspace, err = actions.As[resources.Workspace](out)
   231  //require.NoError(t, err)
   232  //
   233  //	active, err = workspace.LoadActiveModule(ctx, .Name)
   234  //	require.Equal(t, "test-module-2", active.Name)
   235  //}