github.com/c3pm-labs/c3pm@v0.3.0/ctpm/test.go (about)

     1  package ctpm
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"github.com/c3pm-labs/c3pm/adapter"
     7  	"github.com/c3pm-labs/c3pm/adapter_interface"
     8  	"github.com/c3pm-labs/c3pm/config"
     9  )
    10  
    11  func Test(pc *config.ProjectConfig) error {
    12  	getter := adapter.AdapterGetterImp{}
    13  	adp, err := getter.FromPC(pc.Manifest.Build.Adapter)
    14  	if err != nil {
    15  		return err
    16  	}
    17  	adpt, ok := adp.(adapter_interface.AdapterTestable)
    18  	if !ok {
    19  		return errors.New("Adapter does not support testing")
    20  	}
    21  	return adpt.Test(pc)
    22  }
    23  
    24  func AddDependenciesAndTest(pc *config.ProjectConfig) error {
    25  	pc.Manifest.Dependencies = pc.Manifest.Dependencies.Append(pc.Manifest.TestDependencies)
    26  	err := addAllDependencies(pc)
    27  	if err != nil {
    28  		return fmt.Errorf("error installing dependencies: %w", err)
    29  	}
    30  	err = Test(pc)
    31  	if err != nil {
    32  		return fmt.Errorf("build failed: %w", err)
    33  	}
    34  	return nil
    35  }