github.com/solo-io/cue@v0.4.7/cue/testdata/fulleval/035_optionals_with_label_filters.txtar (about)

     1  # DO NOT EDIT; generated by go run testdata/gen.go
     2  #
     3  #name: optionals with label filters
     4  #evalFull
     5  -- in.cue --
     6  #JobID: =~"^[a-zA-Z]*$"
     7  #Job: {
     8  	name: string
     9  	cmd:  string
    10  }
    11  #Jobs: {
    12  	{[#JobID]: #Job}
    13  
    14  	{[=~"Test$"]: name: =~"^test"}// Must work without ...
    15  }
    16  
    17  jobs: foo: name: "allGood"
    18  jobs: foo: name: "allGood"
    19  
    20  jobs1:          #Jobs
    21  jobs1: foo1: {} // faulty
    22  
    23  jobs2: #Jobs
    24  jobs2: fooTest: name: "badName" // faulty
    25  
    26  jobs3: #Jobs
    27  jobs3: [string]: #Job
    28  jobs3: fooTest1: name: "badName" // faulty
    29  -- out/def --
    30  #JobID: =~"^[a-zA-Z]*$"
    31  #Job: {
    32  	name: string
    33  	cmd:  string
    34  }
    35  #Jobs: {
    36  	{[#JobID]: #Job}
    37  	{[=~"Test$"]: {
    38  		name: =~"^test", ...
    39  	}}
    40  }
    41  jobs: {
    42  	foo: {
    43  		name: "allGood"
    44  	}
    45  }
    46  jobs1: _|_ // field "foo1" not allowed in closed struct
    47  jobs2: #Jobs & {
    48  	fooTest: {
    49  		name: "badName"
    50  	}
    51  }
    52  jobs3: _|_ // field "fooTest1" not allowed in closed struct
    53  -- out/legacy-debug --
    54  <0>{#JobID: =~"^[a-zA-Z]*$", #Job: <1>C{name: string, cmd: string}, #Jobs: <2>C{[=~"^[a-zA-Z]*$"]: <3>(_: string)-><4>.#Job, [=~"Test$"]: <5>(_: string)-><6>C{name: =~"^test"}, }, jobs: <7>{foo: <8>{name: "allGood"}}, jobs1: _|_(<9>{}:field "foo1" not allowed in closed struct), jobs2: <10>C{[=~"^[a-zA-Z]*$"]: <11>(_: string)-><4>.#Job, [=~"Test$"]: <12>(_: string)-><13>C{name: =~"^test"}, fooTest: _|_(string:field "cmd" not allowed in closed struct)}, jobs3: _|_(<14>{name: "badName"}:field "fooTest1" not allowed in closed struct)}
    55  -- out/compile --
    56  --- in.cue
    57  {
    58    #JobID: =~"^[a-zA-Z]*$"
    59    #Job: {
    60      name: string
    61      cmd: string
    62    }
    63    #Jobs: {
    64      {
    65        [〈2;#JobID〉]: 〈2;#Job〉
    66      }
    67      {
    68        [=~"Test$"]: {
    69          name: =~"^test"
    70        }
    71      }
    72    }
    73    jobs: {
    74      foo: {
    75        name: "allGood"
    76      }
    77    }
    78    jobs: {
    79      foo: {
    80        name: "allGood"
    81      }
    82    }
    83    jobs1: 〈0;#Jobs〉
    84    jobs1: {
    85      foo1: {}
    86    }
    87    jobs2: 〈0;#Jobs〉
    88    jobs2: {
    89      fooTest: {
    90        name: "badName"
    91      }
    92    }
    93    jobs3: 〈0;#Jobs〉
    94    jobs3: {
    95      [string]: 〈1;#Job〉
    96    }
    97    jobs3: {
    98      fooTest1: {
    99        name: "badName"
   100      }
   101    }
   102  }
   103  -- out/eval --
   104  Errors:
   105  jobs1: field not allowed: foo1:
   106      ./in.cue:6:8
   107      ./in.cue:7:2
   108      ./in.cue:9:2
   109      ./in.cue:15:17
   110      ./in.cue:16:8
   111  jobs3: field not allowed: fooTest1:
   112      ./in.cue:6:8
   113      ./in.cue:7:2
   114      ./in.cue:9:2
   115      ./in.cue:21:8
   116      ./in.cue:22:8
   117      ./in.cue:23:8
   118  jobs2.fooTest.name: invalid value "badName" (out of bound =~"^test"):
   119      ./in.cue:9:22
   120      ./in.cue:19:23
   121  
   122  Result:
   123  (_|_){
   124    // [eval]
   125    #JobID: (string){ =~"^[a-zA-Z]*$" }
   126    #Job: (#struct){
   127      name: (string){ string }
   128      cmd: (string){ string }
   129    }
   130    #Jobs: (#struct){
   131    }
   132    jobs: (struct){
   133      foo: (struct){
   134        name: (string){ "allGood" }
   135      }
   136    }
   137    jobs1: (_|_){
   138      // [eval]
   139      foo1: (_|_){
   140        // [eval] jobs1: field not allowed: foo1:
   141        //     ./in.cue:6:8
   142        //     ./in.cue:7:2
   143        //     ./in.cue:9:2
   144        //     ./in.cue:15:17
   145        //     ./in.cue:16:8
   146      }
   147    }
   148    jobs2: (_|_){
   149      // [eval]
   150      fooTest: (_|_){
   151        // [eval]
   152        name: (_|_){
   153          // [eval] jobs2.fooTest.name: invalid value "badName" (out of bound =~"^test"):
   154          //     ./in.cue:9:22
   155          //     ./in.cue:19:23
   156        }
   157        cmd: (string){ string }
   158      }
   159    }
   160    jobs3: (_|_){
   161      // [eval]
   162      fooTest1: (_|_){
   163        // [eval] jobs3: field not allowed: fooTest1:
   164        //     ./in.cue:6:8
   165        //     ./in.cue:7:2
   166        //     ./in.cue:9:2
   167        //     ./in.cue:21:8
   168        //     ./in.cue:22:8
   169        //     ./in.cue:23:8
   170      }
   171    }
   172  }