| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- // Copyright 2022 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package actions
-
- import (
- "strings"
- "testing"
-
- actions_model "code.gitea.io/gitea/models/actions"
- "code.gitea.io/gitea/models/db"
- unittest "code.gitea.io/gitea/models/unittest"
-
- 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])
- }
-
- func Test_loadIsRefDeleted(t *testing.T) {
- unittest.PrepareTestEnv(t)
-
- runs, total, err := db.FindAndCount[actions_model.ActionRun](t.Context(),
- actions_model.FindRunOptions{RepoID: 4, Ref: "refs/heads/test"})
- assert.NoError(t, err)
- assert.Len(t, runs, 1)
- assert.EqualValues(t, 1, total)
- for _, run := range runs {
- assert.False(t, run.IsRefDeleted)
- }
-
- assert.NoError(t, loadIsRefDeleted(t.Context(), 4, runs))
- for _, run := range runs {
- assert.True(t, run.IsRefDeleted)
- }
- }
|