mirror of https://github.com/go-gitea/gitea.git
157 lines
4.4 KiB
Go
157 lines
4.4 KiB
Go
|
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||
|
// SPDX-License-Identifier: MIT
|
||
|
|
||
|
package actions
|
||
|
|
||
|
import (
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
act_model "github.com/nektos/act/pkg/model"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestReadWorkflow_WorkflowDispatchConfig(t *testing.T) {
|
||
|
yaml := `
|
||
|
name: local-action-docker-url
|
||
|
`
|
||
|
workflow, err := act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch := workflowDispatchConfig(workflow)
|
||
|
assert.Nil(t, workflowDispatch)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on: push
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.Nil(t, workflowDispatch)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on: workflow_dispatch
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.NotNil(t, workflowDispatch)
|
||
|
assert.Nil(t, workflowDispatch.Inputs)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on: [push, pull_request]
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.Nil(t, workflowDispatch)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on:
|
||
|
push:
|
||
|
pull_request:
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.Nil(t, workflowDispatch)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on: [push, workflow_dispatch]
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.NotNil(t, workflowDispatch)
|
||
|
assert.Nil(t, workflowDispatch.Inputs)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on:
|
||
|
- push
|
||
|
- workflow_dispatch
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.NotNil(t, workflowDispatch)
|
||
|
assert.Nil(t, workflowDispatch.Inputs)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on:
|
||
|
push:
|
||
|
pull_request:
|
||
|
workflow_dispatch:
|
||
|
inputs:
|
||
|
`
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.NotNil(t, workflowDispatch)
|
||
|
assert.Nil(t, workflowDispatch.Inputs)
|
||
|
|
||
|
yaml = `
|
||
|
name: local-action-docker-url
|
||
|
on:
|
||
|
push:
|
||
|
pull_request:
|
||
|
workflow_dispatch:
|
||
|
inputs:
|
||
|
logLevel:
|
||
|
description: 'Log level'
|
||
|
required: true
|
||
|
default: 'warning'
|
||
|
type: choice
|
||
|
options:
|
||
|
- info
|
||
|
- warning
|
||
|
- debug
|
||
|
boolean_default_true:
|
||
|
description: 'Test scenario tags'
|
||
|
required: true
|
||
|
type: boolean
|
||
|
default: true
|
||
|
boolean_default_false:
|
||
|
description: 'Test scenario tags'
|
||
|
required: true
|
||
|
type: boolean
|
||
|
default: false
|
||
|
`
|
||
|
|
||
|
workflow, err = act_model.ReadWorkflow(strings.NewReader(yaml))
|
||
|
assert.NoError(t, err, "read workflow should succeed")
|
||
|
workflowDispatch = workflowDispatchConfig(workflow)
|
||
|
assert.NotNil(t, workflowDispatch)
|
||
|
assert.Equal(t, WorkflowDispatchInput{
|
||
|
Name: "logLevel",
|
||
|
Default: "warning",
|
||
|
Description: "Log level",
|
||
|
Options: []string{
|
||
|
"info",
|
||
|
"warning",
|
||
|
"debug",
|
||
|
},
|
||
|
Required: true,
|
||
|
Type: "choice",
|
||
|
}, workflowDispatch.Inputs[0])
|
||
|
assert.Equal(t, WorkflowDispatchInput{
|
||
|
Name: "boolean_default_true",
|
||
|
Default: "true",
|
||
|
Description: "Test scenario tags",
|
||
|
Required: true,
|
||
|
Type: "boolean",
|
||
|
}, workflowDispatch.Inputs[1])
|
||
|
assert.Equal(t, WorkflowDispatchInput{
|
||
|
Name: "boolean_default_false",
|
||
|
Default: "false",
|
||
|
Description: "Test scenario tags",
|
||
|
Required: true,
|
||
|
Type: "boolean",
|
||
|
}, workflowDispatch.Inputs[2])
|
||
|
}
|