Skip to content

Commit 21765c1

Browse files
committed
feat: add ApplyParametersToWorkspaceBindings and tests for task run
1 parent 331e939 commit 21765c1

File tree

1 file changed

+295
-0
lines changed

1 file changed

+295
-0
lines changed

pkg/reconciler/taskrun/resources/apply_test.go

+295
Original file line numberDiff line numberDiff line change
@@ -1635,3 +1635,298 @@ func TestApplyCredentialsPath(t *testing.T) {
16351635
})
16361636
}
16371637
}
1638+
1639+
func TestApplyParametersToWorkspaceBindings(t *testing.T) {
1640+
tests := []struct {
1641+
name string
1642+
ts *v1.TaskSpec
1643+
tr *v1.TaskRun
1644+
want *v1.TaskRun
1645+
}{
1646+
{
1647+
name: "pvc",
1648+
ts: &v1.TaskSpec{
1649+
Params: []v1.ParamSpec{
1650+
{Name: "claim-name", Type: v1.ParamTypeString},
1651+
},
1652+
},
1653+
tr: &v1.TaskRun{
1654+
Spec: v1.TaskRunSpec{
1655+
Workspaces: []v1.WorkspaceBinding{
1656+
{
1657+
PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
1658+
ClaimName: "$(params.claim-name)",
1659+
},
1660+
},
1661+
},
1662+
Params: v1.Params{{Name: "claim-name", Value: v1.ParamValue{
1663+
Type: v1.ParamTypeString,
1664+
StringVal: "claim-value",
1665+
}}},
1666+
},
1667+
},
1668+
want: &v1.TaskRun{
1669+
Spec: v1.TaskRunSpec{
1670+
Workspaces: []v1.WorkspaceBinding{
1671+
{
1672+
PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
1673+
ClaimName: "claim-value",
1674+
},
1675+
},
1676+
},
1677+
Params: v1.Params{{Name: "claim-name", Value: v1.ParamValue{
1678+
Type: v1.ParamTypeString,
1679+
StringVal: "claim-value",
1680+
}}},
1681+
},
1682+
},
1683+
},
1684+
{
1685+
name: "subPath",
1686+
ts: &v1.TaskSpec{
1687+
Params: []v1.ParamSpec{
1688+
{Name: "subPath-name", Type: v1.ParamTypeString},
1689+
},
1690+
},
1691+
tr: &v1.TaskRun{
1692+
Spec: v1.TaskRunSpec{
1693+
Workspaces: []v1.WorkspaceBinding{
1694+
{
1695+
SubPath: "$(params.subPath-name)",
1696+
},
1697+
},
1698+
Params: v1.Params{{Name: "subPath-name", Value: v1.ParamValue{
1699+
Type: v1.ParamTypeString,
1700+
StringVal: "subPath-value",
1701+
}}},
1702+
},
1703+
},
1704+
want: &v1.TaskRun{
1705+
Spec: v1.TaskRunSpec{
1706+
Workspaces: []v1.WorkspaceBinding{
1707+
{
1708+
SubPath: "subPath-value",
1709+
},
1710+
},
1711+
Params: v1.Params{{Name: "subPath-name", Value: v1.ParamValue{
1712+
Type: v1.ParamTypeString,
1713+
StringVal: "subPath-value",
1714+
}}},
1715+
},
1716+
},
1717+
},
1718+
{
1719+
name: "configMap",
1720+
ts: &v1.TaskSpec{
1721+
Params: []v1.ParamSpec{
1722+
{Name: "configMap-name", Type: v1.ParamTypeString},
1723+
},
1724+
},
1725+
tr: &v1.TaskRun{
1726+
Spec: v1.TaskRunSpec{
1727+
Workspaces: []v1.WorkspaceBinding{
1728+
{
1729+
ConfigMap: &corev1.ConfigMapVolumeSource{
1730+
LocalObjectReference: corev1.LocalObjectReference{
1731+
Name: "$(params.configMap-name)",
1732+
},
1733+
},
1734+
},
1735+
},
1736+
Params: v1.Params{{Name: "configMap-name", Value: v1.ParamValue{
1737+
Type: v1.ParamTypeString,
1738+
StringVal: "configMap-value",
1739+
}}},
1740+
},
1741+
},
1742+
want: &v1.TaskRun{
1743+
Spec: v1.TaskRunSpec{
1744+
Workspaces: []v1.WorkspaceBinding{
1745+
{
1746+
ConfigMap: &corev1.ConfigMapVolumeSource{
1747+
LocalObjectReference: corev1.LocalObjectReference{
1748+
Name: "configMap-value",
1749+
},
1750+
},
1751+
},
1752+
},
1753+
Params: v1.Params{{Name: "configMap-name", Value: v1.ParamValue{
1754+
Type: v1.ParamTypeString,
1755+
StringVal: "configMap-value",
1756+
}}},
1757+
},
1758+
},
1759+
},
1760+
{
1761+
name: "secret",
1762+
ts: &v1.TaskSpec{
1763+
Params: []v1.ParamSpec{
1764+
{Name: "secret-name", Type: v1.ParamTypeString},
1765+
},
1766+
},
1767+
tr: &v1.TaskRun{
1768+
Spec: v1.TaskRunSpec{
1769+
Workspaces: []v1.WorkspaceBinding{
1770+
{
1771+
Secret: &corev1.SecretVolumeSource{
1772+
SecretName: "$(params.secret-name)",
1773+
},
1774+
},
1775+
},
1776+
Params: v1.Params{{Name: "secret-name", Value: v1.ParamValue{
1777+
Type: v1.ParamTypeString,
1778+
StringVal: "secret-value",
1779+
}}},
1780+
},
1781+
},
1782+
want: &v1.TaskRun{
1783+
Spec: v1.TaskRunSpec{
1784+
Workspaces: []v1.WorkspaceBinding{
1785+
{
1786+
Secret: &corev1.SecretVolumeSource{
1787+
SecretName: "secret-value",
1788+
},
1789+
},
1790+
},
1791+
Params: v1.Params{{Name: "secret-name", Value: v1.ParamValue{
1792+
Type: v1.ParamTypeString,
1793+
StringVal: "secret-value",
1794+
}},
1795+
},
1796+
},
1797+
},
1798+
},
1799+
{
1800+
name: "projected-sources-configMap",
1801+
ts: &v1.TaskSpec{
1802+
Params: []v1.ParamSpec{
1803+
{Name: "proj-configMap-name", Type: v1.ParamTypeString},
1804+
},
1805+
},
1806+
tr: &v1.TaskRun{
1807+
Spec: v1.TaskRunSpec{
1808+
Workspaces: []v1.WorkspaceBinding{
1809+
{
1810+
Projected: &corev1.ProjectedVolumeSource{
1811+
Sources: []corev1.VolumeProjection{
1812+
{
1813+
ConfigMap: &corev1.ConfigMapProjection{
1814+
LocalObjectReference: corev1.LocalObjectReference{
1815+
Name: "$(params.proj-configMap-name)",
1816+
},
1817+
},
1818+
},
1819+
},
1820+
},
1821+
},
1822+
},
1823+
Params: v1.Params{
1824+
{
1825+
Name: "proj-configMap-name", Value: v1.ParamValue{
1826+
Type: v1.ParamTypeString,
1827+
StringVal: "proj-configMap-value",
1828+
},
1829+
},
1830+
},
1831+
},
1832+
},
1833+
want: &v1.TaskRun{
1834+
Spec: v1.TaskRunSpec{
1835+
Workspaces: []v1.WorkspaceBinding{
1836+
{
1837+
Projected: &corev1.ProjectedVolumeSource{
1838+
Sources: []corev1.VolumeProjection{
1839+
{
1840+
ConfigMap: &corev1.ConfigMapProjection{
1841+
LocalObjectReference: corev1.LocalObjectReference{
1842+
Name: "proj-configMap-value",
1843+
},
1844+
},
1845+
},
1846+
},
1847+
},
1848+
},
1849+
},
1850+
Params: v1.Params{
1851+
{
1852+
Name: "proj-configMap-name", Value: v1.ParamValue{
1853+
Type: v1.ParamTypeString,
1854+
StringVal: "proj-configMap-value",
1855+
},
1856+
},
1857+
},
1858+
},
1859+
},
1860+
},
1861+
{
1862+
name: "projected-sources-secret",
1863+
ts: &v1.TaskSpec{
1864+
Params: []v1.ParamSpec{
1865+
{Name: "proj-secret-name", Type: v1.ParamTypeString},
1866+
},
1867+
},
1868+
tr: &v1.TaskRun{
1869+
Spec: v1.TaskRunSpec{
1870+
Workspaces: []v1.WorkspaceBinding{
1871+
{
1872+
Projected: &corev1.ProjectedVolumeSource{
1873+
Sources: []corev1.VolumeProjection{
1874+
{
1875+
Secret: &corev1.SecretProjection{
1876+
LocalObjectReference: corev1.LocalObjectReference{
1877+
Name: "$(params.proj-secret-name)",
1878+
},
1879+
},
1880+
},
1881+
},
1882+
},
1883+
},
1884+
},
1885+
Params: v1.Params{
1886+
{
1887+
Name: "proj-secret-name", Value: v1.ParamValue{
1888+
Type: v1.ParamTypeString,
1889+
StringVal: "proj-secret-value",
1890+
},
1891+
},
1892+
},
1893+
},
1894+
},
1895+
want: &v1.TaskRun{
1896+
Spec: v1.TaskRunSpec{
1897+
Workspaces: []v1.WorkspaceBinding{
1898+
{
1899+
Projected: &corev1.ProjectedVolumeSource{
1900+
Sources: []corev1.VolumeProjection{
1901+
{
1902+
Secret: &corev1.SecretProjection{
1903+
LocalObjectReference: corev1.LocalObjectReference{
1904+
Name: "proj-secret-value",
1905+
},
1906+
},
1907+
},
1908+
},
1909+
},
1910+
},
1911+
},
1912+
Params: v1.Params{
1913+
{
1914+
Name: "proj-secret-name", Value: v1.ParamValue{
1915+
Type: v1.ParamTypeString,
1916+
StringVal: "proj-secret-value",
1917+
},
1918+
},
1919+
},
1920+
},
1921+
},
1922+
},
1923+
}
1924+
for _, tt := range tests {
1925+
t.Run(tt.name, func(t *testing.T) {
1926+
got := resources.ApplyParametersToWorkspaceBindings(tt.ts, tt.tr)
1927+
if d := cmp.Diff(got, tt.want); d != "" {
1928+
t.Errorf("ApplyParametersToWorkspaceBindings() %v, diff %v", tt.name, d)
1929+
}
1930+
})
1931+
}
1932+
}

0 commit comments

Comments
 (0)