@@ -956,3 +956,84 @@ async def test_delete_number_pool_in_use_by_numberpool_attribute(
956956
957957 assert delete_fail .errors
958958 assert "Unable to delete number pool SnowTask.number is in use (branches: main)" in str (delete_fail .errors )
959+
960+
961+ async def test_update_schema_number_pool_range (
962+ db : InfrahubDatabase , default_branch : Branch , register_core_models_schema : None
963+ ) -> None :
964+ await load_schema (db = db , schema = SNOW_TICKET_SCHEMA )
965+ gql_params = await prepare_graphql_params (db = db , include_subscription = False , branch = default_branch )
966+ node_schema = registry .schema .get (name = "SnowTask" , branch = default_branch )
967+ number_pool_attribute = node_schema .get_attribute (name = "number" )
968+ assert isinstance (number_pool_attribute .parameters , NumberPoolParameters )
969+ registry .node [InfrahubKind .NUMBERPOOL ] = CoreNumberPool
970+ query_before_creation = await graphql (
971+ schema = gql_params .schema ,
972+ source = QUERY_NUMBER_POOL ,
973+ context_value = gql_params .context ,
974+ root_value = None ,
975+ variable_values = {
976+ "id" : number_pool_attribute .parameters .number_pool_id ,
977+ },
978+ )
979+
980+ assert not query_before_creation .errors
981+ assert query_before_creation .data
982+ assert query_before_creation .data ["CoreNumberPool" ]["count" ] == 0
983+
984+ create_snow_incident_mutation = """
985+ mutation CreateSnowIncident(
986+ $title: String!,
987+ ) {
988+ SnowIncidentCreate(
989+ data: {
990+ title: {value: $title},
991+ }
992+ ) {
993+ object {
994+ title {
995+ value
996+ }
997+ number {
998+ value
999+ source {
1000+ id
1001+ }
1002+ }
1003+ identifier {
1004+ value
1005+ }
1006+ }
1007+ }
1008+ }
1009+ """
1010+
1011+ create_snow_incident = await graphql (
1012+ schema = gql_params .schema ,
1013+ source = create_snow_incident_mutation ,
1014+ context_value = gql_params .context ,
1015+ root_value = None ,
1016+ variable_values = {
1017+ "title" : "Printer is saying PC load Letter" ,
1018+ },
1019+ )
1020+ assert not create_snow_incident .errors
1021+ assert create_snow_incident .data
1022+
1023+ update_forbidden = await graphql (
1024+ schema = gql_params .schema ,
1025+ source = UPDATE_NUMBER_POOL ,
1026+ context_value = gql_params .context ,
1027+ root_value = None ,
1028+ variable_values = {
1029+ "id" : number_pool_attribute .parameters .number_pool_id ,
1030+ "start_range" : 1 ,
1031+ "end_range" : 10 ,
1032+ },
1033+ )
1034+
1035+ assert update_forbidden .errors
1036+ assert (
1037+ "start_range or end_range can't be updated on schema defined pools, update the schema in the default branch instead"
1038+ in str (update_forbidden .errors )
1039+ )
0 commit comments